基本介紹
- 中文名:變形補碼
- 釋義:兩個二進制位來表示數字的符號位
- 出處:計算機語言
- 類型:溢出
符號位分析,示例,
符號位分析
總的說來就是符號位左邊那一位表示正確的符號,0為正,1為負;右邊那一位如果和左邊的相同,如 "00"表示正且無溢出,"11"表示負且無溢出。如果右邊那一位與左邊那一位不一樣,則表示有溢出。
示例
1、產生01的情況:
補碼:
0 111
+ 0 010
————
1 001
兩個正數相加出現了負數,明顯有誤,就是說此時產生了上溢出(註:補碼運算時符號位也參與運算)
變形補碼:
00 111
+ 00 010
————
01 001
此時讀數時,由於左邊的符號位是0,所以表示正數,讀成+9,而不像模二補碼中變成了-1
2、產生10的情況:
補碼:
1 001
+ 1 010
————
10 011
溢出一位後,結果變成了0 011,兩個負數相加出現了正數,明顯有誤,就是說此時產生了下溢出(註:補碼運算時符號位也參與運算)
變形補碼:
11 001
+ 11 010
————
110 011
溢出一位後,結果變成了10 011,此時讀數時,由於左邊的符號位是1,所以表示負數,讀成-3,而不像模二補碼中變成了+3
(註:產生01和10時,讀數時右邊那一位符號也要算在數字裡面)