源碼得反碼
1. -64的源碼反碼補碼是什麼
-64,有符號數,第一位為符號位所以,
原碼:
11000000,二進制1000000轉換成10進制為64
反碼:
正數的反碼與原碼相同,負數的反碼,符號位不變,其餘各位按位取反,所以反碼為:
10111111
補碼:
正數的補碼與原碼相同,負數的補碼,符號位不變,其餘各位按位取反再加1,所以反碼為:
10111111+1=11000000
計算機里,負數的是以補碼形式存放的,WIN7以上的系統自帶的計算器就可以查看負數的補碼。打開計算器,切換到程序員模式,然後輸入-64,可以看到下面的補碼,如圖:
注意紅框裡面的數字即是-64的補碼,如果是負數,前面的所有位數都是1
2. 源碼反碼與補碼
8位2進制原碼反碼補碼表示法:第一位是符號位,正數為0負數為1
-67的原碼是11000011,換成反碼符號位不變,其他各位依次求反:
10111100,換成補碼只在反碼基礎上末位加1:
10111101。
55的原碼00110111,正數原碼反碼補碼相同。
補碼實現55-67:00110111
+10111101
---------------------------
11110100
把這個補碼末位減一,符號位不變各位取反得到結果的原碼表示:10001100,
轉換成十進制剛好等於-12,驗證了結果11110100是正確的。
3. 源碼-反碼-補碼 的轉換規則
正數的原碼,補碼,反碼都相同,都等於它本身
負數的補碼是:符號位為1,其餘各位求反,末位加1
反碼是:符號位為1,其餘各位求反,但末位不加1
也就是說,反碼末位加上1就是補碼
4. +0或者-0的源碼、反碼、補碼
0原碼是00000000
-0原碼是10000000
0反碼是00000000
-0反碼是11111111
0補碼是00000000
補碼沒有正0與負0之分
正數的反碼、補碼和其原碼相同負數的反碼是其原碼除符號位外其他位取反負數的補碼是取其反碼後加1