2016-04-18 46 views
2

Java中的Integer.MIN_VALUE的二進制表示形式爲10000000000000000000000000000000Integer.MIN_VALUE的二進制表示形式

爲什麼它不是10000000000000000000000000000001而是因爲在它的二進制補碼中加1會比10000000000000000000000000000000大1呢?

+0

我不是很清楚你的問題中的最後一句話:「既然一個補碼的加1會大於10000000000000000000000000一個?」 – Nier

回答

3

int在Java中有符號的32位數字,即第32位,就像你說的,代表了負數,小數,-(2^31),並以二進制:

10000000000000000000000000000000 
^ → "negative bit" 

但剩下的31位仍處於籤系統「積極的」位,所以:

10000000000000000000000000000001 → -2^31 + 1 

而且-2^31 + 1-2^31更大。