變形補碼

概述

變形補碼,即用兩個二進制位來表示數字的符號位,其餘與補碼相同。變形補碼,用“00”表示正,用“11”表示負,也稱為模4的補碼。用變形補碼進行加減運算時,當運算結果的符號位出現“01”或者“10”時,則表示產生溢出。變形補碼的最高位(第一個符號位)總是表示正確的符號,比如"00"、 “01”分別表示正數、正溢出(上溢),"11"、“10”表示負數、負溢出(下溢)。
總的說來就是符號位左邊那一位表示正確的符號,0為正,1為負;右邊那一位如果和左邊的相同,如 "00”表示正且無溢出,"11"表示負且無溢出。如果右邊那一位與左邊那一位不一樣,則表示有溢出。

示例

1、產生01的情況:
補碼:
0 111
+ 0 010
————
1 001
兩個正數相加出現了負數,明顯有誤,就是說此時產生了上溢出(註:補碼運算時符號位也參與運算)
變形補碼:
00 111
+ 00 010
————
01 001
此時讀數時,由於左邊的符號位是0,所以表示正數,讀成+9,而不像模二補碼中變成了-7
2、產生10的情況:
補碼:
1 001
+ 1 010
————
10 011
溢出一位後,結果變成了0 011,兩個負數相加出現了正數,明顯有誤,就是說此時產生了下溢出(註:補碼運算時符號位也參與運算)
變形補碼:
11 001
+ 11 010
————
110 011
溢出一位後,結果變成了10 011,此時讀數時,由於左邊的符號位是1,所以表示負數,讀成-13,而不像模二補碼中變成了+3
(註:產生01和10時,讀數時右邊那一位符號也要算在數字裡面)

相關詞條

相關搜尋

熱門詞條

聯絡我們