C# 进制转换 运算符 三元运算符 as进行类型转换

一,进制

          符号位       原码            反码           补码
+7          0        0000111        0000111        0000111
-7          1        0000111        1111000        1111001

1,十进制负整数转二进制
a,将十进制转为二进制,不管符号
b,对转换后的逐位取反
c,在最后一位加1
2,二进制转十进制
a,逐位取反
b,对取反后的二进制加1加负号

二,运算符

数学运算符
主要作用是进行数学运算

//假如A=21;B=10;
            int A = 21,B = 10;
            textBox1.Text = "A+B=" + (A + B);
            textBox2.Text = "A-B=" + (A - B);
            textBox3.Text = "A*B=" + (A * B);
            textBox4.Text = "A/B=" + (A / B);
            textBox5.Text = "A%B=" + (A % B);

自增自减

描述
B=A++前置自减,先自减再使用
B=++A前置自加,先自加再使用
B=A- -后置自减,先使用再自减
B=- -A前置自减,先自减再使用
 //假设A=10;B=0;
            int A = 10;
            int B;
            B = A++;
            textBox1.Text = "B=" + B + ";A=" + A;
            B = ++A;
            textBox2.Text = "B=" + B + ";A=" + A;
            int a = 10;
            int b;
            b = a--;
            textBox3.Text = "b=" + b + ";a=" + a;
            b = --a;
            textBox4.Text = "b=" + b + ";a=" + a;

逻辑运算符

运算符描述
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。
11称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。
 label1.Text = ((textBox1.Text == "A") && (textBox2.Text == "A")).ToString();
 label2.Text = ((textBox1.Text == "A") || (textBox2.Text == "A")).ToString();
 label3.Text = (!((textBox1.Text == "A") && (textBox2.Text == "A"))).ToString();

关系运算符

 int A = 10;
            int B = 20;
            label3.Text = "(A == B)="+(A == B).ToString();
            label4.Text = "(A != B)=" + (A != B).ToString();
            label5.Text = "(A > B)=" + (A > B).ToString();
            label6.Text = "(A < B)=" + (A < B).ToString();

位运算符
位运算符作用于位,并逐位执行操作。

运算符描述
&如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。
l如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。
^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。
~二进制补码运算符是一元运算符,具有"翻转"位效果。
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。
            int a = 60;
            int b = 13;
            label3.Text = "(a & b)=" + (a & b).ToString();
            label4.Text = "(a | b)=" + (a | b).ToString();
            label5.Text = "(a ^ b)=" + (a ^ b).ToString();
            label6.Text = "(~a)=" + (~a).ToString();
            label7.Text = " (a << 2)="+ (a << 2).ToString();
            label8.Text = " (a >> 2)="+(a >> 2) .ToString();

注意:
&和&&:
1,&和&&都表示逻辑与(and)的运算符,只有当运算符两边的结果都是true整个运算才为true
2,&&具有短路功能,如果左边表达式结果为false则右边表达式不再进行运算判断。而&则不然,不论左边表达式结果是true还是false,右边表达式仍然会进行运算判断
|和||
1,|和||都表示逻辑或(or)的运算符,运算符两边的表达式只要有一个是true整个表达式都是true
2,||具有短路功能,如果左边的表达式结果为true则右边表达式不再进行运算判断。而|则不然,不论左边表达式结果是true还是false,右边表达式都会进行运算判断
例子:

            int a = 60;
            int b = 13;
            label9.Text ="&"+ ((a++ > 70) & (b++ < 20)).ToString() + "【a=" + a + "】【b=" + b + "】";
            a = 60;
            b = 13;
            label10.Text = "&&"+((a++ > 70) && (b++ < 20)).ToString() + "【a=" + a + "】【b=" + b + "】";
            a = 60;
            b = 13;
            label11.Text = "|"+((a++ > 70) | (b++ < 20)).ToString() + "【a=" + a + "】【b=" + b + "】";
            a = 60;
            b = 13;
            label12.Text = "||"+((b++ < 20)||(a++ > 70)).ToString() + "【a=" + a + "】【b=" + b + "】";

赋值运算符

            int a = 10, b = 12, c;
            label4.Text = "c=a+b:c=" + (a + b);
            label5.Text = "b+=a:b=" + (b += a);

杂项运算符
1,sizeof()返回数据类型(值类型)的大小。sizeof(int),将返回4
2,typeof()返回class的类型。typeof(StreamReader);
3,&返回变量的地址。&a;将得到变量的实际地址。
4,“※”变量的指针。*a;将指向一个变量。
5,?x:y-条件表达式,如果条件为真?则为x:否则为y
6,is判断对象是否为某一类型。
7,as-if(ford is car);// 检查Ford是否是Car类的一个对象。as强制转换,即使转换失败也不会抛出异常。

 string str = "";
            label1.Text ="bool类型的大小是:"+ sizeof(bool).ToString();
            label2.Text="string类型属于"+typeof(Form)+"类";
            label3.Text = "三元表达式进行对a赋值(10,8)比较大的数:a=" + (10 > 8 ? 10 : 8);

三元运算符
Exp1 ? Exp2 : Exp3;
条件运算符 ? :,可以用来替代 if…else语句。它的一般形式如下:
其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。
as进行类型转换

  object a="123";
            label4.Text = "a原本类型是" + a.GetType().Name+ "\r\n" + "a经过as进行强转为string类型" + (a as String).GetType().Name;
//a是object,但是通过给a赋一个string类型的值,然后通过GetType方法得到其最终类型就是string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值