我对我们如何找到负整数的位NOT有点困惑。对于正整数'a'
- 显示'a'的二进制形式
- 将所有0转换为1,反之亦然
- 标记为"~a">
- 找到'~a'的2的恭维数并将其转换回整数
- 将'~a'的符号附加到我们从步骤4中得到的整数上,这样我们就得到了'a'的位NOT。
使用相同的方法,当我试图找到任何负整数的位NOT时,我得到了不同的答案。
我想知道按位NOT实际上是如何工作的。
将1位转换为0位,将0位转换为1位。
所以,如果我有一个16位二进制数1111000011110000
,它的位不等于0000111100001111
。
有关Java位运算符的更多信息,请阅读Oracle Java教程
中的位和位移位运算符页面。