【发布时间】:2015-10-10 23:42:35
【问题描述】:
考虑下面的 java 代码。
Integer value = Integer.MIN_VALUE;
System.out.println(value);
value = -value;
System.out.println(value);
输出
-2147483648
-2147483648
Integer.MIN_VALUE 值的负值如何产生相同的值?
但是结果不能是2147483648,因为Java中Integer的最大值是2147483647。
但是想知道为什么-2147483648?内部发生了什么样的按位运算?
【问题讨论】:
-
对于重新开放的选民,重复中的this 答案解释了
Integer.MIN_VALUE的否定。重复不是关于相同的问题,而是关于这个问题在这里已经有答案,正如标签所述。
标签: java operators bitwise-operators ones-complement