首页 > 解决方案 > 负数的位运算符

问题描述

为什么..

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

我理解 & 正数,但由于某种原因,当抛出负数时,我不明白答案是如何得出的。

标签: javabitwise-operators

解决方案


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

例如:

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

推荐阅读