二進位制補碼錶示法
這是在計算機中表示有符號整數的方法之一。在這種方法中,最高有效位(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結果時非常方便。
對於計算機執行算術運算非常方便。加法運算可以直接給出正確的結果。
因此,補碼錶示法通常用於在計算機內部表示有符號數。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP