Java Integer.MIN_值的二进制表示形式

Java Integer.MIN_值的二进制表示形式,java,binary,Java,Binary,Java中Integer.MIN_VALUE的二进制表示形式是100000000000000000000000 为什么不改为100000000000000000000000000001,因为它的两个补码加一会比100000000000000000000000大一倍?int在Java中是一个有符号的32位数字,这意味着第32位,就像你说的,代表十进制的负数,—(2^31),二进制: 10000000000000000000000000000000 ^ → "negative bit" 但在有符号

Java中
Integer.MIN_VALUE
的二进制表示形式是
100000000000000000000000


为什么不改为
100000000000000000000000000001
,因为它的两个补码加一会比
100000000000000000000000
大一倍?

int
在Java中是一个有符号的32位数字,这意味着第32位,就像你说的,代表十进制的负数,
—(2^31)
,二进制:

10000000000000000000000000000000
^ → "negative bit"
但在有符号系统中,剩余的31位仍然是“正”位,因此:

10000000000000000000000000000001 → -2^31 + 1

而且
-2^31+1
大于
-2^31

我不明白你问题的最后一句话:“因为二的补码加一会比一大1000000000000000000?”