java類型轉換與補碼錶示
數碼錶示 | 正數 | 負數 |
---|---|---|
原碼 | 0000 0001 | 1000 0001 |
反碼 | 0000 0001 | 1111 1110 |
補碼 | 0000 0001 | 1111 1111 |
正數原碼,補碼,反碼都一樣。
負數首位爲符號位,反碼爲除符號位,其它各位逐位取反,補碼反碼+1.
java中用補碼形式表示
byte 8位
short 16位
int 32位
long 64位
short a = 128 0000 0000 1000 0000
byte b = (byte)a
1000 0000(補碼) –>反碼 1111 1111–> 原碼 1000 0000
1000 0000 表示-128
0000 0000 表示 0
爲什麼採取補碼?
整數的補碼加負數的補碼等於零