2
Java中的Integer.MIN_VALUE
的二进制表示形式为10000000000000000000000000000000
。Integer.MIN_VALUE的二进制表示形式
为什么它不是10000000000000000000000000000001
而是因为在它的二进制补码中加1会比10000000000000000000000000000000
大1呢?
Java中的Integer.MIN_VALUE
的二进制表示形式为10000000000000000000000000000000
。Integer.MIN_VALUE的二进制表示形式
为什么它不是10000000000000000000000000000001
而是因为在它的二进制补码中加1会比10000000000000000000000000000000
大1呢?
int
在Java中有符号的32位数字,即第32位,就像你说的,代表了负数,小数,-(2^31)
,并以二进制:
10000000000000000000000000000000
^ → "negative bit"
但剩下的31位仍处于签系统“积极的”位,所以:
10000000000000000000000000000001 → -2^31 + 1
而且-2^31 + 1
比-2^31
更大。
我不是很清楚你的问题中的最后一句话:“既然一个补码的加1会大于10000000000000000000000000一个?” – Nier