二進位制補碼錶示法


這是在計算機中表示有符號整數的方法之一。在這種方法中,最高有效位(MSD)具有額外的含義。

  • 如果MSD為0,我們可以像對待任何普通的無符號整數一樣評估該數。
  • 如果MSD為1,則表示該數為負數。

其他位表示該數的幅度(絕對值)。

如果數字為負數,則其他位表示該數字幅度的二進位制補碼。

因此,正數在符號位、反碼和補碼錶示法中具有相同的表示。只有負數在這些表示法中的表示不同。下表顯示了一些有符號十進位制數及其在補碼錶示法中的等效值,假設字長為4位。

有符號十進位制
補碼
         +6
   0110
         -6
   1010
         +0
   0000
         +7
   0111
         -7
   1001

請注意,0只有一個表示法,無論它是+0還是-0。有人可能會認為0 000 只有+0,因為在這種情況下MSB為0。但是,-0的表示法應該是0 000的補碼,即1111 + 1 = 0 000(忽略進位)。

因此,在補碼錶示法中,可以表示比符號位或反碼錶示法多一個負數。這是因為在補碼錶示法中,零隻有一個表示法,而在符號位和反碼錶示法中,零有兩個表示法。

範圍

如果字長為n位,則可以表示的數字範圍是從-(2n-1)到+(2n-1 -1)。下表顯示了字長和可以表示的補碼數的範圍。

字長
補碼數字範圍
       4
-8 到 +7
       8
-128 到 +127
       16
-32768 到 +32767
       32
-2147483648 到 +2147483647 ≈ ±2 × 10+9

 

示例1 - 使用計算機將數字(+5)和(-3)相加。假設這些數字使用4位補碼錶示。

             1101 <- carry generated during addition

             0101 <- (+5)

           + 1101 <-(-3)

             0010 <- (+2) Sum


因此,在這種方法中,計算機可以直接給出+2 = 0010的正確答案。

缺點

  • 補碼錶示法不容易理解,因為它與表示有符號數的常規方法大相徑庭。

優點

  • 零隻有一個表示法,當計算機需要測試0結果時非常方便。

  • 對於計算機執行算術運算非常方便。加法運算可以直接給出正確的結果。

因此,補碼錶示法通常用於在計算機內部表示有符號數。

更新於:2020年6月27日

4K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.