求补码一位乘(booth乘法 比较法)计算x=11011y=-11111求x*y的详细过程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求补码一位乘(booth乘法 比较法)计算x=11011y=-11111求x*y的详细过程相关的知识,希望对你有一定的参考价值。
如题,求详细过程
换成十进制,X=16+8+0+2+1=27。
Y=-(16+8+4+2+1)=31。
故X*Y=-837。
换成二进制。
等于1100000101。
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
参考技术A [X]补=10101 [Y]补=100001 [-X]补=01011部分积 乘数 附加位 操作说明
0 0 0 0 0 0 1 0 0 0 0 1 | 0 开始情形
+0 0 1 0 1 1 判别位10,加[-X]补
----------------
0 0 1 0 1 1
0 0 0 1 0 1 1 1 0 0 0 0 | 1 右移部分积和乘数
+1 1 0 1 0 1 判别位01,加[X]补
----------------
1 1 1 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 | 0 右移部分积和乘数
1 1 1 1 1 0 1 0 1 1 0 0 | 0 判别位00,右移部分积和乘数
1 1 1 1 1 1 0 1 0 1 1 0 | 0 判别位00,右移部分积和乘数
1 1 1 1 1 1 1 0 1 0 1 1 | 0 判别位00,右移部分积和乘数
+0 0 1 0 1 1 判别位10,加[-x]补
----------------
0 0 1 0 1 0 最后一次不移位
[x*y]补=001010101011
不知道答案对不对啊。。。我也刚学到这里。。本回答被提问者采纳 参考技术B 回答
好,很高兴为您服务,您的问题我已经看到了,请稍等一会儿哦~[微笑]
换成十进制,X=16+8+0+2+1=27。Y=-(16+8+4+2+1)=31。故X*Y=-837。换成二进制。等于1100000101。
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
计组_定点数一位乘_布斯公式
•Booth 一位乘法规则:
将部分积初始化为0;
通过将乘数的尾部增加1位0作为[Y]补的第n+1位;
比较Yi与Yi-1; i=n+1,……,2,1
若Yi-Yi-1=1, 则部分积作加[X]补运算;
若Yi-Yi-1= –1,则部分积作加[-X]补运算;
若Yi-Yi-1= 0, 则部分积作加0运算(加0运算可以省略)
运算完成后,部分积右移1位,得到新的部分积;
反复n+1次,但最后一次不移位,所得的结果即为[X*Y]补。
以上是关于求补码一位乘(booth乘法 比较法)计算x=11011y=-11111求x*y的详细过程的主要内容,如果未能解决你的问题,请参考以下文章