定點數的原碼補碼除法

weixin_33670713發表於2018-03-06

原碼的恢復餘數/不恢復餘數的除法
參考:http://www.diangon.com/thread-10781-1-1.html

(1)原碼的恢復餘數的除法
        由於除法通過減法實現,當商上1時,可將比較資料大小的減法操作與除法操作中的減法操作合併,即商上1後繼續後面的除法操作。商上0時表明不夠減,不應該直接執行除法運算中的減運算,但因試商時的比較操作已經實施了一次減法,因此,需將餘數恢復到試商前的值,這可加除數來是想,這種方法稱為恢復餘數法除法。 
例如:x = 0.1001 y=0.1011  求 x/y
(2)原碼的不恢復餘數的除法
不恢復餘數法又稱加減交替法,是對恢復餘數法的改進,其特點是當試商結果為負時不再恢復餘數,而是根據所得餘數的符號作下列處理:

●當餘數為正時,商上1,餘數左移一位,減去除數; 
●當餘數為負時,商上0,餘數左移一位,加上除數。

由於沒一步都上商,因此運算步數固定,控制簡單,提高了運算速度。 

補碼的不恢復餘數的除法:

(1)被除數與除數同號,被除數減去除數;被除數與除數異號,被除數加上除數。 

(2)餘數與除數同號,商上1,餘數左移一位減去除數;餘數與除數異號,商上0,餘數左移一位加上除數。(注意:餘數左移加上或減去除數後就得到了新餘數。) 

(3)重複(2),直到商的位數滿足要求為止。  

相關文章