作业帮 > 数学 > 作业

我算的这个booth算法哪错了,

来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/11 00:27:25
我算的这个booth算法哪错了,
这是唐朔飞的组成原理的例6.21,
[x]补=0.1101 [y]补=0.1011 求[xy]补
我做的时候先求出[-x]补=1.0011
然后看[y]补=0.101(10),为10,所以要加[-x]补,得
0.0000
+ 1.0011
= 1.0011 再右移一位得0.10011
然后看[y]补=0.10(11),为11,所以直接右移一位得 0.010011
然后看[y]补=0.1(01)1,为01,所以要加[x]补,得
0.010011
+ 0.1101
= 1.000111 再右移一位得0.1000111
然后看[y]补=0.(10)11,为10,所以要加[-x]补,得
0.1000111
+ 1.0011
= 1.1011111 再右移一位得0.11011111
然后看[y]补=(0.1)011,为01,所以要加[x]补,得
0.11011111
+ 0.1101
= 1.10101111
因为是最后一步,所以不移位,得1.10101111
但是书上的答案是0.10001111
书上的计算过程写的我看不懂,我觉得我算的和书上的递推公式一样啊,请问我这样算的到底哪错了?
书上在原码一位乘那说右移是逻辑右移,所以我就在这也用的逻辑右移,高位补0,这样没错吧
我算的这个booth算法哪错了,
例:[x]补=0.0101,[y]补=1.0101 求:[x· y]补.
其中乘数取两位符号位即11.0101,[-x]补=1.1011取三符号位为111.1011.
部分积
乘数
说 明
000.0000
+ 000.0101
1101010
判断位为010,加[x]补
000.0101
000.0001
+ 000.0101
0111010
→2位
判断位为010,加[x]补
000.0110
000.0001
+ 111.1011
01
1001110
→2位
判断位为110,加[-x]补
111.1100
1001
最后一步不移位,得[x· y]补
故[x· y]补=1.11001001