++ -- 一元运算符
++ / -- 在数字操作前,先进行自加/自减,再做其他运算
++ / -- 在数字操作后,先进行操作,再进行自加/自减
int a = 1;
a++; //a = a + 1;
a--; //a = a - 1;
float b = 1.0f;
b++; //b = b + 1;
b--; //b = b - 1;
int c = 3;
int d = c + a++; //a= 2 d= 4
int e = c + ++a; //a= 3 e= 6
Console.WriteLine ("{0}、{1}、{2}",d,e,a);
三元运算符 ?:
int a = 10,b = 9;
int c = a > b ? a : b; //判断a>b,成立取a,否则为b
string a,b; //a与b比较
a.CompareTo (b) == 1 ? a : b;
int a = 3;
int b = 5;
int max = a > b ? a : b;
if (a > b) {
max = a;
} else {
max = b;
}
逻辑运算符 与:&& 或:|| 非:!(0选1 1选0)
短路机制
bool isRight = false;
Console.WriteLine ("{0}",!isRight); // true
int a = 2, b = 3,c= 4;
&&
真 假 真 假
假 真 真 假
假 假 真 假
if (a > 4 && b < 5) {
Console.WriteLine ("满足条件");
}
||
真 假 真 假
假 真 真 假
真 真 真 假
if( a>c || b
Console.WriteLine("满足条件");
}
短路机制
if(a++ >=3||--c <=4){
Console.WriteLine ("a = {0},c = {1}",a,c); // a=3,c=3
}
if(a++ >=2||--c <=4){
Console.WriteLine ("a = {0},c = {1}",a,c); // a=3,c=4
}
if(a++ >2&&--c <=4){
Console.WriteLine ("a = {0},c = {1}",a,c); // a=3,c=4
}
按位计算符
& 按位与
1 0 1 0
1 1 0 0
1 0 0 0
00101101 00110010
10010010 00100110
00000000 00100010
| 按位或
1 0 1 0
1 1 0 0
1 1 1 0
^ 按位异或
1 0 1 0
1 1 0 0
0 1 1 0
~ 按位取反
int a = 15; //00001111 >> 00000011 按位向右移动两位
int b = 60; //00111100 << 11110000 按位向左移动两位
00001100 &
00111111 |
00110011 ^
11001100 ~
int c = a ^ b;
Console.WriteLine ("{0}",~c);
>> << 按位移动,空处补零
int d = a >> 2;
int e = b << 2;
Console.WriteLine ("{0}、{1}",d,e); //d = 3 e = 240