问题: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,则用常规的补码转换为原码即可。
定点数一位乘法之Booth(布斯)算法
最新推荐文章于 2022-09-21 16:11:14 发布