计算机组成原理——加减运算 溢出判断
文章目錄
- 原碼的加減運算
- 原碼的加法運算:
- 原碼的減法運算,“減數”符號取反,轉變為加法:
- 補碼的加減運算
- 補充:
- 1. 求[-B]補
- 2. 負數補 → 原:
- 例題
- 溢出判斷
- 溢出條件
- 溢出判斷:采用雙符號位
原碼的加減運算
原碼的加法運算:
原碼的減法運算,“減數”符號取反,轉變為加法:
- 正-負 → 正+正
- 負-正 → 負+負
- 正-正 → 正+負
- 負+正 → 負-負
補碼的加減運算
對于補碼來說,無論加法還是減法,最后都會轉變成加法,由加法器實現運算,符號位也參與運算。
補充:
1. 求[-B]補
[-B]補 : [B]補連同符號位一起取反加1
2. 負數補 → 原:
①數值位取反+1;
②負數補碼中,最右邊的1及其右邊同原碼。最右邊的1的左邊同反碼
例題
我們先看一道例題:設機器字長為8位(含1位符號位),A = 15,B = -24,求[A+B]補和[A?B]補
先將A B的原碼補碼都求出來
[A+B]補 = [A]補 + [B]補 = 0,0001111 + 1,1101000 = 1,1110111
原碼:1,0001001 真值-9
[A-B]補 = [A]補 + [-B]補 = 0,0001111 + 0,0011000 = 0,0100111
真值+39
我們將題改一下:
其中 C = 124,求[A+C]補和[B?C]補,按照上面方法求出可得:
[A+C]補 = 0,0001111 + 0,1111100 = 1,0001011 真值-117 溢出(實際應該是139,但是溢出后是 -117)
[B?C]補 = 1,1101000 + 1,0000100 =0,1101100 真值+108
溢出判斷
溢出條件
- 只有“正數+正數 ”才會上溢 —— 正+正=負
- 只有“負數+負數 ”才會下溢 —— 負+負=正
溢出判斷:采用雙符號位
正數符號為00,負數符號為11
[A+C]補 = 00,0001111 + 00,1111100 = 01,0001011 上溢
[B?C]補 = 11,1101000 + 11,0000100 = 10,1101100 下溢
記兩個符號位為S1 S2 ,則V=S1異或S2
- 若V=0,表示無溢出;
- 若V=1,表示有溢出。
總結
以上是生活随笔為你收集整理的计算机组成原理——加减运算 溢出判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chatgpt的150个指令大全
- 下一篇: 哪个蓝牙耳机好?盘点2022年600元左