持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
二进制除法手算
规律:忽略小数点,每确定一位商}进行一次减法,得到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(减法用补码的加法实现)
运算器检测ACC中数变为了负数,那么就不应该商1而是商0,把MQ的最后一位改为0,并且ACC再加上除数
运算完成后进行逻辑左移
注意:机器字长为5位
小数点隐含和最后的余数处理
总结及规律
步骤
上商0/1,得到余数,余数末尾补0
求余数
ACC - 除数 --》ACC
ACC + [-|y|]补数 --》ACC
恢复余数的办法:上商0/1,得到余数,余数末尾补0;
然后每次进行完,逻辑左移
加减交替法
可以对回复余数法进行优化,本质:不回复除数
做法
若余数为负,则可直接商0,并让余数左移1位再加上|除数|
注意:
最后一位商0时,需要恢复余数
比较