1. 原碼、反碼、補碼、移碼
原碼:最高位為符號位(0表示正,1表示負),其余為為其真值的絕對值
如8的原碼為 00001000,-8的原碼為10001000
正數的反碼、補碼與其原碼相同
反碼:負數的反碼為其原碼的基礎上除符號位外其余取反(1取反為0,0取反為1)
如-8的反碼為11110111
補碼:負數的補碼為其反碼的基礎上末位+1
如11110111末位+1后為11111110
無論正負,其移碼都為其補碼的基礎上符號位取反
2.java中的數據是以補碼的形式存儲
如題:
byte b=(byte)129;
System.out.println(b);
//控制台輸出結果: -127
//過程如下:
//129的補碼為 010000001
//從低位開始取8位得 10000001
//減1得 10000000
//取反碼為 11111111即-127