三个位运算的运算规则
按位与&:两位全为1,结果为1,否则为0
按位或 |:两位有一个为1,结果为1,全为0则为0
按位异或^:两位一个为0,一个为1,结果为1,否则为0
举例说明:
2&3
2的补码 0000 0010
3的补码 0000 0011
2&3 : 0000 0010 //2
2|3
2的补码 0000 0010
3的补码 0000 0011
2|3 : 0000 0011 //3
2^3
2的补码 0000 0010
3的补码 0000 0011
2&3 : 0000 0001 //1
-2^2
-2的原码 1000 0010
-->反码 1111 1110
-->补码 1111 1110
2的补码 0000 0010
-2^2 : 1111 1100(补码) ---> 反码(1111 1011) --->原码 1000 0100 //4
两个移位运算符运算规则
右移运算符 >>:低位溢出,符号位不变,并用符号位补溢出的高位
左移运算符 <<: 符号位不变,低位补0
举例说明:
5>>2
5的原码 0000 0101
结果 0000 0001 //1
5<<2
5的原码 00000 0101
结果 00001 0100 //20
-5<<2
-5的原码 1000 00101
结果 1000 10100 //-20