原碼與補碼

http://www.cnblogs.com/wxf0701/archive/2008/08/14/1267639.html
在計算機系統中,數值一律用補碼來表示(存儲)。
主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補
碼表示的數相加時,如果最高位(符號位)有進位,則進位被舍棄。
補碼與原碼的轉換過程幾乎是相同的。

已知原碼求補碼

數值的補碼表示也分兩種情況:
(1)正數的補碼:與原碼相同。
例如,+9的補碼是0000 1001。
(2)負數的補碼:符號位為1,其余位為該數絕對值的原碼按位取反;然后整個數加1。
例如,-7的補碼:因為是負數,則符號位為“1”,整個為10000111;其余7位為-7的絕對值+7的原碼
000 0111按位取反為111 1000;再加1,所以-7的補碼是1111 1001。
已知一個數的補碼,求原碼的操作分兩種情況:
(1)如果補碼的符號位為“0”,表示是一個正數,所以補碼就是該數的原碼。
(2)如果補碼的符號位為“1”,表示是一個負數,求原碼的操作可以是:符號位為1,其余各位取反,然后再整個數加1。
例如,已知一個補碼為1111 1001,則原碼是1000 0111(-7):因為符號位為“1”,表示是一個負數,所以該位不變,仍為 “1”;其余7位111 1001取反后為000 0110;再加1,所以是1000 0111。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容