这段代码:
System.out.println(Math.abs(Integer.MIN_VALUE));
Returns -2147483648
是否应该返回绝对值2147483648
?
Integer.MIN_VALUE
is -2147483648
,但 32 位整数可以包含的最高值为+2147483647
。试图代表+2147483648
在 32 位 int 中将有效地“翻转”到-2147483648
。这是因为,当使用有符号整数时,二进制补码表示形式为+2147483648
and -2147483648
是相同的。然而,这不是问题,因为+2147483648
被认为超出范围。
要了解更多有关此问题的内容,您可能需要查看维基百科关于二进制补码的文章.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)