有符號二進位制運算



在本章中,我們將討論基本算術運算,這些運算可以使用2的補碼方法對任何兩個有符號二進位制數執行。**基本算術運算**包括加法和減法。

兩個有符號二進位制數的加法

考慮兩個以2的補碼形式表示的有符號二進位制數A和B。我們可以執行這兩個數的**加法**,這類似於兩個無符號二進位制數的加法。但是,如果結果和包含來自符號位的進位,則為了獲得正確的值,請將其丟棄(忽略)。

如果結果和為正,則可以直接找到其大小。但是,如果結果和為負,則取其2的補碼以獲得其大小。

示例1

讓我們使用2的補碼方法執行兩個十進位制數**+7和+4**的**加法**。

下面顯示了+7和+4分別用5位表示的**2的補碼**。

$$\mathrm{(+7)_{10} \: = \: (00111)_{2}}$$

$$\mathrm{(+4)_{10} \: = \: (00100)_{2}}$$

這兩個數的加法是

$$\mathrm{(+7)_{10} \: + \: (+4)_{10} \: = \: (00111)_{2} \: + \: (00100)_{2}}$$

$$\mathrm{\Rightarrow \: (+7)_{10} \: + \: (+4)_{10} \: = \: (01011)_{2}}$$

結果和包含5位。因此,沒有來自符號位的進位。符號位“0”表示結果和為**正**。因此,和的大小在十進位制數系統中為11。因此,兩個正數的加法將得到另一個正數。

示例2

讓我們使用2的補碼方法執行兩個十進位制數**-7**和**-4**的**加法**。

下面顯示了-7和-4分別用5位表示的**2的補碼**。

$$\mathrm{(−7)_{10} \: = \: (11001)_{2}}$$

$$\mathrm{(−4)_{10} \: = \: (11100)_{2}}$$

這兩個數的加法是

$$\mathrm{(−7)_{10} \: + \: (−4)_{10} \: = \: (11001)_{2} \: + \: (11100)_{2}}$$

$$\mathrm{\Rightarrow \: (−7)_{10} \: + \: (−4)_{10} \: = \: (110101)_{2}}$$

結果和包含6位。在這種情況下,從符號位獲得進位。因此,我們可以將其刪除

刪除進位後的結果和為(−7)10 + (−4)10 = (10101)2

符號位“1”表示結果和為**負**。因此,透過取其2的補碼,我們將得到結果和的大小在十進位制數系統中為11。因此,兩個負數的加法將得到另一個負數。

兩個有符號二進位制數的減法

考慮兩個以2的補碼形式表示的有符號二進位制數A和B。我們知道正數的2的補碼得到一個負數。因此,每當我們必須從數A中減去數B時,取B的2的補碼並將其加到A。因此,**數學上**我們可以寫成

A - B = A + (B的2的補碼)

類似地,如果我們必須從數B中減去數A,則取A的2的補碼並將其加到B。因此,**數學上**我們可以寫成

B - A = B + (A的2的補碼)

因此,兩個有符號二進位制數的減法類似於兩個有符號二進位制數的加法。但是,我們必須取要減去的數的2的補碼。這是2的補碼技術的**優點**。遵循兩個有符號二進位制數加法的相同規則。

示例1

讓我們使用2的補碼方法執行兩個十進位制數**+7和+4**的**減法**。

這兩個數的減法是

$$\mathrm{(+7)_{10} \: − \: (+4){10} \: = \: (+7)_{10} \: + \: (−4)_{10}}$$

下面顯示了+7和-4分別用5位表示的**2的補碼**。

$$\mathrm{(+7)_{10} \: = \: (00111)_{2}}$$

$$\mathrm{(+4)_{10} \: = \: (11100)_{2}}$$

$$\mathrm{\Rightarrow \: (+7)_{10} \: + \: (+4)_{10} \: = \: (00111)_{2} \: + \: (11100)_{2} \: = \: (00011)_{2}}$$

這裡,從符號位獲得進位。因此,我們可以將其刪除。刪除進位後的結果和為

$$\mathrm{(+7)_{10} \: + \: (+4)_{10} \: = \: (00011)_{2}}$$

符號位“0”表示結果和為**正**。因此,其大小在十進位制數系統中為3。因此,十進位制數+7和+4的減法為+3。

示例2

讓我們使用2的補碼方法執行兩個十進位制數**+4**和**+7**的**減法**。

這兩個數的減法是

$$\mathrm{(+4)_{10} \: − \: (+7)_{10} \: = \: (+4)_{10} \: + \: (−7)_{10}}$$

下面顯示了+4和-7分別用5位表示的**2的補碼**。

$$\mathrm{(+4)_{10} \: = \: (00100)_{2}}$$

$$\mathrm{(-7)_{10} \: = \: (11001)_{2}}$$

$$\mathrm{\Rightarrow \: (+4)_{10} \: + \: (-7)_{10} \: = \: (00100)_{2} \: + \: (11001)_{2} \: = \: (11101)_{2}}$$

這裡,沒有從符號位獲得進位。符號位“1”表示結果和為**負**。因此,透過取其2的補碼,我們將得到結果和的大小在十進位制數系統中為3。因此,十進位制數+4和+7的減法為-3。

廣告