我在 JDK 中看到 Integer.MIN_VALUE 是 0x80000000。考虑到原来是0x80000000,那么相反的是0x8fffffff,最后补码是0x8fffffff + (-1) = -2^32?那么 —2^32 是否是 1000 0000 0000 0000 0000 0000 0000 0000 位呢?
最佳答案
使用 32 位可以表示 2^32 个整数。
- 2^31 为负
- 2^31 - 1 为正
- 1 等于 0
如果将它们相加,就会得到2^31 + 2^31 - 1 + 1 = 2^32
。
因此,最大(最大正数)整数为 2^31-1
,最小(最大负数)整数为 -2^31
。
关于java - 为什么Integer.MIN_VALUE是-2^32而Integer.MAX_VALUE是2^31-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325903/