一、位运算符简介:
1.按位与&。如果两个整形数据 a、b 对应位都是1,则结果位才为1,否则为0,(int 最大值0x7fffffff ):
1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 int aAndB = a&b; //aAndB is 12
5 int aAndC = a&c; //aAndC is 0
2.按位或|。如果两个操作数都是0,则结果为0,否则为1:
1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 int aOrB = a|b; //aOrB is 2147483647
5 int aOrC = a|c; //aOrC is 2147483647
3.按位取反~。当操作数的二进制表示相同时,1位为0,0位为1:
1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 a = ~a; //result is -2147483648
5 b = ~b; //result is -13;
6 c = ~c; //result is -1;
4.按位异或^。当两个操作位二进制表示相同时结果为0,否则为1:
1 int a = 0x7fffffff;2 int b = 12;3 int c = 0;4 c ^= a; //c is 2147483647
5 b ^= 8; //b is 4
6 a ^= a; //a is 0