带负数的按位运算符

时间:2019-01-10 06:45:28

标签: java bitwise-operators

为什么这样做。

-23&30 = 8
5&-3 = 5 
15&-1 = 15

我理解&带有正数,但是由于某种原因,当抛出负数时,我不明白答案的推导方式。

1 个答案:

答案 0 :(得分:4)

您应该阅读有关用二进制表示负数的2的补码方法。

例如:

 5 == 00000000 00000000 00000000 00000101
 &
-3 == 11111111 11111111 11111111 11111101
 =    -----------------------------------
 5 == 00000000 00000000 00000000 00000101