运算符
C#--赋值运算符
=+=-=*=/=
// 声明一个变量,对这个变量的赋值为10.
int a = 10;
/* a += 10相当于a = a + 10;可以先看赋值运算符的右边,
* a的值在上一步已经为10,而a + 10等于20,然后将得到的20赋予a,a经过+=后的值就是20.*/
a += 10;
// 其余都与+=相同
C#--算数运算符
+-*/%
%是对一个数取余的,其他和数学中的运算符号意思相同
C#--比较运算符
==!=>=<=><
==表示相等,!=表示不相等,其余与数学中的符号相同,返回值都是bool。一般用于条件判断。
C#--逻辑运算符
&&与 全为真则真,否则假||或 全为假则假,否则真!非 真则假,假则真
C#--特殊运算符
i++++ii----i
i++先赋值再自增,++i先自增再赋值。
C#--位运算
&与|或^异或~取反
位运算是针对于二进制的运算
假设如果 a = 60,且 b = 13,求 a&b,a|b,a^b,~a;
- 将十进制转换成二进制 a = 0011 1100,b = 1101。
| a | b | a&b | a丨b | a^b | ~a |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 |
- a&b = 0000 1100
- a|b = 0011 1101
- a^b = 0011 0001
- ~a = 1100 0011
可以将1看做真,0看做假。&两者都为真为真,否则为假。|两者都为假为假,否则为真。^两者不同为真,相同为假。~是对一个二进制数据做处理,真的为假,假的为真。
a = 0000 1100,b = 0011 0011,求:a<<2,b>>2。
a<<2->0011 0000左移两位,在末尾添加两个零b>>2->0000 1100右移两位,在末尾划去两位
C#--三目运算符
// 声明一个int类型的变量,并赋值
int numA = 122;
// 声明一个int类型的变量,并赋值
int numB = 234;
// 声明一个bool类型的变量,判断numA和numB是否相等,二者若是相等res的值为true,否则为false。
bool res = numA == numB ? true : false;
相当于
if……else……的简写。
赋值运算符2
%=<<=>>=|=&=
int a = 10;
a <<= 2;
C#--短路问题
int num1 = 10;
int num2 = 5;
// 与短路
bool result = ++num1 == 10 && ++num2 > 1;
// num1=11、num2=5,11等于10逻辑不成立,后面逻辑不执行
Console.WriteLine("num1:{0},num2:{1}", num1, num2);
// 或短路
bool result2 = ++num1 != 5 || ++num2 > 1;
// num1=12、num2=5,12大于5逻辑成立,后面逻辑不执行
Console.WriteLine("num1:{0},num2:{1}", num1, num2);
与短路:若是前面不符合条件,后面的结果无论是否符合,都不会影响返回的结果,故后面的逻辑不会执行。
或短路:若是前面符合条件,后面的结果无论是否符合,都不会影响返回的结果,故后面的逻辑不会执行。
本文来自博客园,作者:坞中客,转载请注明原文链接:https://www.cnblogs.com/wuzhongke/p/16815120.html

浙公网安备 33010602011771号