原碼、反碼、補碼精簡總結

文章目錄

原碼

一個數的原碼(原始的二進制碼)有如下特點:

  • 最高位做爲符號位,0表示正,爲1表示負
  • 其它數值部分就是數值本身絕對值的二進制數
  • 負數的原碼是在其絕對值的基礎上,最高位變爲1

下面數值以1字節的大小描述:

十進制數 原碼
+15 0000 1111
-15 1000 1111
+0 0000 0000
-0 1000 0000

原碼錶示法簡單易懂,與帶符號數本身轉換方便,只要符號還原即可,但當兩個正數相減或不同符號數相加時,必須比較兩個數哪個絕對值大,才能決定誰減誰,才能確定結果是正還是負,所以原碼不便於加減運算。

反碼

  • 對於正數,反碼與原碼相同
  • 對於負數,符號位不變,其它部分取反(1變0,0變1)
十進制數 反碼
+15 0000 1111
-15 1111 0000
+0 0000 0000
-0 1111 1111

反碼運算也不方便,通常用來作爲求補碼的中間過渡。

補碼

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

補碼特點:

  • 對於正數,原碼、反碼、補碼相同
  • 對於負數,其補碼爲它的反碼加1
  • 補碼符號位不動,其他位求反,最後整個數加1,得到原碼
十進制數 補碼
+15 0000 1111
-15 1111 0001
+0 0000 0000
-0 0000 0000

在計算機系統中,數值一律用補碼來存儲,主要原因是:

  • 統一了零的編碼

  • 將符號位和其它位統一處理

  • 將減法運算轉變爲加法運算

  • 兩個用補碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章