C#运算符

++  --  一元运算符

++ / -- 在数字操作前,先进行自加/自减,再做其他运算

++ / -- 在数字操作后,先进行操作,再进行自加/自减

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

你可能感兴趣的:(C#运算符)