Loading

定点数补码乘法运算

补码乘法的理论推导

img

根据上述理论推导,我们可以得知,\([x]_{补} * [y]_{补} \neq [x*y]_{补}\),在计算补码的乘法时,我们应该减去乘数的符号位乘以其对应的位权乘以被乘数

原码的符号位是不参与运算的,而补码的符号位是参与运算的,并且在最后是减去乘数的符号位乘以其对应的位权乘以被乘数

img

还有一点与原码乘法不同的是,补码乘法中的部分积的加减都应该遵循补码运算的规则,例如应该进行符号扩展而不是零扩展

img

img

Booth算法

我们可以认为Booth是一种"差分优化",在原来的运算方案中,一连串的1中,每个1都需要被运算一次。而使用了Booth算法之后就只需要在开头和结尾运算一次

img

img

img

运算电路实现

img

手算模拟

img

这里对于“算数右移”的描述,我们可以直接认为,符号位也参与了移位,然后向高位补了一个符号位。补码的算数左移和右移,符号位都是发生移动的。

总结

img

posted @ 2024-07-18 11:54  AH20  阅读(31)  评论(0编辑  收藏  举报