Integer.MIN_VALUE的二进制表示

时间:2016-04-18 02:00:24

标签: java binary

Java中Integer.MIN_VALUE的二进制表示形式为10000000000000000000000000000000

为什么它不是10000000000000000000000000000001,因为在它的两个补码中加一个会比10000000000000000000000000000000加一个?

1 个答案:

答案 0 :(得分:3)

Java中的

int是一个带符号的32位数字,这意味着第32位,如你所说,代表负数,十进制,-(2^31)和二进制:

10000000000000000000000000000000
^ → "negative bit"

但剩下的31位仍然是“正面”#34;签名系统中的位,所以:

10000000000000000000000000000001 → -2^31 + 1

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