在計算機系統(tǒng)中,數(shù)值一律用補碼來存儲。
主要原因:使用補碼枫振,可以將符號位和其它位統(tǒng)一處理到踏;同時,減法也可按加法來處理村砂。另外,兩個用補碼表示的數(shù)相加時,如果最高位(符號位)有進位袒餐,則進位被舍棄。
補碼與原碼的轉換過程幾乎是相同的。
數(shù)值的補碼表示也分兩種情況:
(1)正數(shù)的補碼:與原碼相同灸眼。
例如卧檐,+9的補碼是00001001。
(2)負數(shù)的補碼:符號位為1焰宣,其余位為該數(shù)絕對值的原碼按位取反霉囚;然后整個數(shù)加1。
例如匕积,-7的補碼:因為是負數(shù)盈罐,則符號位為“1”,整個為10000111;其余7位為-7的絕對值+7的原碼
0000111按位取反為1111000闪唆;再加1盅粪,所以-7的補碼是11111001。
已知一個數(shù)的補碼苞氮,求原碼的操作分兩種情況:
(1)如果補碼的符號位為“0”湾揽,表示是一個正數(shù),所以補碼就是該數(shù)的原碼笼吟。
(2)如果補碼的符號位為“1”库物,表示是一個負數(shù),求原碼的操作可以是:符號位為1贷帮,其余各位取反戚揭,然后再整個數(shù)加1。
例如撵枢,已知一個補碼為11111001民晒,則原碼是10000111(-7):因為符號位為“1”,表示是一個負數(shù)锄禽,所以該位不變潜必,仍為 “1”;其余7位1111001取反后為0000110沃但;再加1磁滚,所以是10000111。