天天看點

二進制(signed or unsigned)補碼

在計算機系統中,數值一律用補碼來表示(存儲)。 

主要原因:使用補碼,可以将符号位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補 

碼表示的數相加時,如果最高位(符号位)有進位,則進位被舍棄。 

補碼與原碼的轉換過程幾乎是相同的。 

數值的補碼表示也分兩種情況: 

(1)正數的補碼:與原碼相同。 

      例如,+9的補碼是00001001。 

(2)負數的補碼:符号位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。 

      例如,-7的補碼:因為是負數,則符号位為“1”,整個為10000111;其餘7位為-7的絕對值+7的原碼 

     0000111按位取反為1111000;再加1,是以-7的補碼是11111001。 

已知一個數的補碼,求原碼的操作分兩種情況: 

(1)如果補碼的符号位為“0”,表示是一個正數,是以補碼就是該數的原碼。 

(2)如果補碼的符号位為“1”,表示是一個負數,求原碼的操作可以是:符号位為1,其餘各位取反,然後再整個數加1。 

     例如,已知一個補碼為11111001,則原碼是10000111(-7):因為符号位為“1”,表示是一個負數,是以該位不變,仍為   “1”;其餘7位1111001取反後為0000110;再加1,是以是10000111。