欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

定点数的原码补码除法

程序员文章站 2024-01-31 14:15:58
...

原码的恢复余数/不恢复余数的除法
参考: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),直到商的位数满足要求为止。