考虑下面的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
?内部发生了哪种位运算操作?
Integer.MIN_VALUE
的否定。 重复不是关于问题是否相同,而是关于“此问题已经有答案在这里”,正如标签所述。 - Sotirios Delimanolis