【发布时间】:2011-01-31 14:16:25
【问题描述】:
为什么按位运算 (~0); 打印 -1 ?在二进制中,不是 0 应该是 1 。为什么?
【问题讨论】:
-
如果要翻转一个位,请使用
x ^ 1。 -
这不是一个“非”运算符。它是一个“补”运算符。
-
@EJP:一个 one's 补码运算符。
-
不,不是。语言规范#4.2.2 将“~”定义为“按位补码运算符”。 Java 中没有“NOT 位运算符”这样的东西。
-
@lh3: 不。它在 C 和 C++ 中都是一个补码运算符。
标签: java javascript c++ c twos-complement