1.原碼
將最高位作為符號位(以0代表正,1代表負),其余各位代表數值本身的絕對值(以二進制表示)。
為了簡單起見,我們用1個字節來表示一個整數。
+7的原碼為: 00000111
-7的原碼為: 10000111
2.反碼
一個數如果為正,則它的反碼與原碼相同;一個數如果為負,則符號位為1,其余各位是對原碼取反。
為了簡單起見,我們用1個字節來表示一個整數:
+7的反碼為:00000111
-7的反碼為: 11111000
3.補碼
補碼:一個數如果為正,則它的原碼、反碼、補碼相同;一個數如果為負,則符號位為1,其余各位是對原碼取反,然後整個數加1。為了簡單起見,我們用1個字節來表示一個整數:
+7的補碼為: 00000111
-7的補碼為: 11111001
已知一個負數的補碼,將其轉換為十進制數,步驟:
1、先對各位取反;
2、將其轉換為十進制數;
3、加上負號,再減去1。
例如:
11111010,最高位為1,是負數,先對各位取反得00000101,轉換為十進制數得5,加上負號得-5,再減1得-6。
我把int a=232;進行強轉為byte類型時為什麼是負數???