定點運算
加減法運算
連同符號位一起相加,符號位產生的進位自然丟掉
- 加法
- 整數: [A]補+[B]補=[A+B]補 (mod 2^(n+1))
- 小數: [A]補+[B]補=[A+B]補 (mod 2)
- 減法 A-B=A+(-B)
- 整數:[A-B]補=[A]補+[-B]補=[A+(-B)]補 (mod 2^(n+1))
- 小數:[A-B]補=[A]補+[-B]補=[A+(-B)]補 (mod 2)

溢位判斷
-
一位符號位判斷溢位
- 兩個數符號相同,結果符號與運算元符號不同,即為溢位
- 最高有效位的進位 ⊕ 符號位的進位=1
- 如 1⊕0=1 0⊕1=1有溢位
- 如 1⊕1=0 0⊕0=0沒有溢位
-
兩位符號位判斷溢位
-

乘法運算
人工計算乘法(原碼一位)

- 乘積的符號心算求得
- 符號位單獨處理
- 乘數的某一位決定是否加被乘數
- 位積一起相加
- 乘積的位數擴大一倍
改進后豎式乘法程序
- 被乘數和乘數均取絕對值參加運算,符號位單獨考慮,
- 被乘數取雙符號,部分積的長度與被乘數的長度相同,初值為0,
- 從乘數的最低位的yn位開始對乘數進行判斷,
- 若yn=1,則部分積加上被乘數|x|,然后右移一位;
- 若yn=0,則部分積加上0,然后右移一位,
- 重復判斷n次,

乘法小結:
- 乘法運算可用加和移位實作
- n=4時,加4次,移動4次
- 被乘數只與部分積的高位相加
- 硬體中,需要3個暫存器,一個保存被乘數,2個具有移位功能
除法
人工計算除法

- 商的符號單獨處理
- 心算上商
- 余數不動低位補“0”
- 減右移一位的除數
- 上商位置不固定
人工計算除法與機器除法比較
| 人工計算 | 機器除法 |
|---|---|
| 商符單獨處理 | 符號位異或形成 |
| 心算上商 | /x/-/y/>0上商1,/x/-/y/<0上商0 |
| 余數不動低位補0,減右移一位的除數 | 余數左移一位,低位補0減除數 |
原碼一位除法
- 設被除數[x]原=xf,x1x2…xn
- 設除數[y] 原=yf,y1y2…yn
- 商的符號: Qf= xf⊕yf
- 商的數值: |Q|=|x|/|y| (絕對值相除)
- 被除數不等于0,除數不能為0
恢復余數法
-
若余數為正數:
- 上商1
- 左移一位
- 加上除數的絕對值的負數的補碼
-
若余數為負數:
- 上商0
- 無需左移
- 加上除數的絕對值的補碼
- 變成正數后,無需上商,但要左移,然后加上除數的絕對值的負數的補碼;
- 若還是負數的話,則反復操作以上步驟
不恢復余數法 (恢復余數法的改良,又稱加減交替法)

- 符號位不參加運算,并要求|x|<|y|
- 先用被除數減去除數
- 當余數為正時,商上1,余數左移一位,再減去除數,
- 當余數為負時,商上0,余數左移一位,再加上除數,
- 當第n+1步余數為負時需加上 |y| 得到第n+1步正確的余數,最后余數為rn×2(-n)(余數與被除數同號),
特點
- 上商n+1次
- 第一次上商判斷是否溢位
- 移動n次,加n+1次
- 用移位的次數判斷出發是否結束
浮點數的加減運算
- 對階(原則:小階向大階看齊)
- 求階差: 要對階,首先應求出兩數的階碼m和n之差,即
ΔE=m-n- 當m=n即,若ΔE=0,則表示兩數的階碼相等;若ΔE>0,則表示m>n;若ΔE<0,則表示m<n,
- 當m≠n時,要通過尾數的移位以改變m或n,使之相等,在對階時,總是使小階向大階看齊,
- 若m>n,則將運算元y的尾數右移一位,y的階碼n加1,直到m=n為止,
- 若m<n,則將運算元x的尾數右移一位,x的階碼m加1,直到m=n為止,
- 尾數求和
使兩個數的階碼相等后,就完成了小數點對準的作業,這時可以執行尾數相加操作,尾數相加與定點數的加、減法相同,
- 結果規格化
- 規格化數:尾數的基值r =n, 1/n≤|S|<1
- 規格化數判斷:
- S>0 規格化形式:00.1××…×(真值原碼補碼反碼 正數都一致)
- S<0 規格化形式:
- 真值:-00.1××…×
- 原碼:1.1××…×
- 補碼:1.0××…×
- 反碼:1.0××…×
- 左規:尾數左移一位,階碼減1,直到數符和第一數位不同為止
- 右規(當尾數溢位(>1)時,需要右規,即01.××…或者10.×××…×時):尾數右移一位,階碼加一
- 舍入
在對階和右規程序中,可能出現尾數末位移動造成丟失引起誤差,則考慮舍入
- 0舍1入法(類似四舍五入)
- 末位恒置“1”法
-
溢位判斷
運算結果的尾數部分符號位為01或10時,在定點加減法運算中表示溢位,而在浮點運算中并不表示溢位,在浮點數中,階碼的位數決定了數的表示范圍,因此,浮點運算是在階碼的符號位出現01或10時,表示溢位,而尾數的符號位為01或10時,給出的是運算結果需要右規的信號,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/303553.html
標籤:其他
