笔算除法:
由笔算除法可以看到,每一次给余数的末尾补 0,除数相当于右移一位,这样计算多了许多无用的 0,
于是我们可以将上面这个乘法转化成为余数左移一位减去除数的问题
一、原码恢复余数除法
1、符号位单独运算得出
2、取绝对值的补码运算
3、乘商寄存器补全 0
4、被除数(余数)+ [- x]补,
所得余数 < 0,则上 0,+ [x]补 后 逻辑左移
所得余数 > 0,则上 1,逻辑左移
1、最后一步凑够需要的精确度便不移位
2、逻辑左移
3、x 表示 | x |
二、原码不恢复余数除法(加减交替法)
1、符号位单独运算得出
2、取绝对值的补码运算
3、乘商寄存器补全 0
4、被除数(余数)+ [- x]补,
所得余数 < 0,则上 0,逻辑左移,下一步 + [x]补
所得余数 > 0,则上 1,逻辑左移,下一步 + [-x]补
5、最后一步不移位
1、逻辑左移
2、加 n + 1 次,移位 n 次
三、补码不恢复余数除法
1、符号位自然形成
2、取补码运算
3、第一步:若两数同号:被除数 + [-y]补
若两数异号:被除数 + [y]补
之后:
所得余数 与 除数符号位相同,上 1,下一步 + [-y]补
所得余数 与 除数符号位不同,上 0,下一步 + [y]补
4、求到最后一位恒置 1
1、加 n 次,移位 n 次