计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高。
源码 反面 补码
在这里二进制的最高位是符号为 0 是正数 1是负数
1===》0000 0001
-1==》1000 0001
整数的源码 反码 补码都一样
负数的反码等于当前码号位不变其他取反
-1补码 1111 1111
负数的补码 = 它的反码+1
0的反码 补码都是0
在运算的时候都是以补码的方式来计算的
位运算符
&与,两位全为1 结果就是1 否则就是0
2&3
2补码 0000 0010
3补码 0000 0011
结果 0000 0010
|或 两位有1 就是1 否则是0
2|3
2补码 0000 0010
3补码 0000 0011
结果 0000 0011
^异或 两位 1个为0 一为1 结果为1 否则为0
2^3
2补码 0000 0010
3补码 0000 0011
结果 0000 0001
>>低位溢出 符号位不变,并用符号位补溢出的高位
<<符号位不变 低位补0