無符號數與有符號數:
無符號數:
正數,它的值就是它的絕對值。10011010---9A 、154
有符號數:(由二進制第一位數決定)
編碼規則與無符號數不同。有符號數最高位是0表示這個數是正數(此時與無符號數的編碼規則一樣的)。是1表示負數。
比如: 00011010---第一個為0表示這個數為正數,即值為1A;
有符號數的編碼規則:
原碼:最高位為符號位,其余各位為數值本身的絕對值
反碼:
-
- 正數:反碼與原碼相同
- 負數:符號位為1,其余位對原碼取反
補碼:
-
- 正數:補碼與原碼相同
- 負數:符號位為1,其余位對原碼取反加1
比如:
有符號數 | 原碼 | 反碼 | 補碼 | 說明 |
1 | 00000001 | 00000001 | 00000001 | 正數的原碼、反碼補碼一樣 |
6 | 00000110 | 00000110 | 00000110 | |
-1 | 10000001 | 11111110 | 11111111 | 負數以補碼形式保存 |
-7 | 10000111 | 11111000 | 11111001 |
結論:
正數:以原碼形式存儲
負數:以補碼形式存儲