原码的除法运算

170 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

二进制除法手算

image.png 规律:忽略小数点,每确定一位商}进行一次减法,得到4位余数,在余数末尾补d,再确定下一位商。确定5位商即可停止(机器字长为5位)

考虑用机器实现

符号和数值位处理

设机器字长为5位(含1位符号位,n=4),x=0.1011,y=0.1101,采用原码恢复余数法求xly 符号单独处理:符号位=xOy,数值位取绝对值进行除法计算 实现方法:上商0/1,得到余数,余数末尾补0

恢复余数法

提前处理

写出除数和余数的绝对值,以及除数的负的绝对值的补码

符号位与数值位分开处理 设机器字长为5位(含1位符号位,n=4) ,x=-0.1011,y=0.1101,采用原码恢复余数法求x/y x=0.1011,ly-0.1101,[y]补—0.1101,[—y]补=1.0011

求余数

ACC - (除数) --》ACC(减法用补码的加法实现)

image.png

运算器检测ACC中数变为了负数,那么就不应该商1而是商0,把MQ的最后一位改为0,并且ACC再加上除数

image.png

运算完成后进行逻辑左移

注意:机器字长为5位

image.png

小数点隐含和最后的余数处理

image.png

总结及规律

image.png

步骤

上商0/1,得到余数,余数末尾补0

image.png

求余数

ACC - 除数 --》ACC

ACC + [-|y|]补数 --》ACC

image.png

恢复余数的办法:上商0/1,得到余数,余数末尾补0;

然后每次进行完,逻辑左移

image.png

加减交替法

可以对回复余数法进行优化,本质:不回复除数

image.png

做法

若余数为负,则可直接商0,并让余数左移1位再加上|除数|

image.png

注意:

最后一位商0时,需要恢复余数

image.png

比较

image.png