定点数一位乘法之Booth(布斯)算法


问题:1.已知[X]补,[Y]补,求[X*Y]补。
          2.已知X,Y,用一位补码求X*Y。
此时用原码求出为7位的值,所以也要先求 [X*Y]补,再转换为 X*Y才能解决。

(1)被乘数是负数[X]补,
[-X]补, [X]补求反然后最后位+1 得到,都用两位符号表示一般为11.****
       
[Y]补用 一位符号表示一般为0.****ynyn+1 ;yn+1位是后面添加的,取0。符号为参与运算。
(2)
如果判断位 ynyn +1 = 01,则 y i+1-  y i  = 1,做加[x ]补操作;
如果判断位 yn   yn +1 = 10,则 y i+1 -y i  =  - 1, [ - x ]补 (或者 -[x ]补 )操作
如果判断位 yn   yn +1 = 11 或 00,则 y i+1-y i  = 0,[ z i ] 加0,即保持不变。
(3)被乘数移位时符号位为11、10,移动后补1。
      
被乘数移位时符号位为00,移动后补0。
      乘数移动时开始的符号为0也要参与运算,也就是最后移出4位后还要运算一次。
若所求结果为
X*Y,则用常规的补码转换为原码即可。

0、 约定 …………………………………………………………………………………………… 5 1、 无符号数一位乘法 …………………………………………………………………………… 7 2、 符号数一位乘法 ……………………………………………………………………………… 8 3、 布思算法(Booth algorithm) ……………………………………………………………… 9 4、 高基(High Radix)布思算法 ……………………………………………………………… 10 5、 迭代算法 …………………………………………………………………………………… 14 6、 乘法运算的实现——迭代 ………………………………………………………………… 18 7、 乘法运算的实现——阵列 ………………………………………………………………… 20 8、 乘加运算 …………………………………………………………………………………… 24 9、 设计示例1 —— 8位、迭代 ……………………………………………………………… 26 1、 实现方案1 —— 一位、无符号 ………………………………………………… 26 2、 实现方案2 —— 一位、布思 …………………………………………………… 33 3、 实现方案3 —— 二位 …………………………………………………………… 39 10、设计示例2 —— 16位、阵列 …………………………………………………………… 45 11、设计示例3 —— 32位、 迭代、阵列 …………………………………………………… 55 1、 实现方案1 —— 乘、加一步走 ………………………………………………… 56 2、 实现方案2 —— 乘、加两步走 ………………………………………………… 67 后记 ……………………………………………………………………………………… 77 个人介绍 ………………………………………………………………………………… 79
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值