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