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