Java 负数位运算符

Java 负数位运算符,java,bitwise-operators,Java,Bitwise Operators,为什么 -23&30 = 8 5&-3 = 5 15&-1 = 15 我明白&用正数,但由于某种原因,当抛出负数时,我不明白答案是如何推导出来的 你应该阅读2的补码法,用二进制表示负数 例如: 5 == 00000000 00000000 00000000 00000101 & -3 == 11111111 11111111 11111111 11111101 = ----------------------------------- 5 ==

为什么

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

我明白&用正数,但由于某种原因,当抛出负数时,我不明白答案是如何推导出来的

你应该阅读2的补码法,用二进制表示负数

例如:

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

你应该阅读2的补码法,用二进制表示负数

例如:

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

你知道在Java中负数是如何用二进制表示的吗?(即2的补码)负数由它们的2的补码表示。您期望得到什么结果?为什么?用二进制写这些数字,然后自己做and运算。你会明白的你知道在Java中负数是如何用二进制表示的吗?(即2的补码)负数由它们的2的补码表示。您期望得到什么结果?为什么?用二进制写这些数字,然后自己做and运算。你会明白的