求补码一位乘(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
通过将乘数的尾部增加10作为[Y]的第n+1位;
比较YiYi-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的详细过程的主要内容,如果未能解决你的问题,请参考以下文章

计算机组成原理——补码乘法运算

计算机组成原理——补码乘法运算

补码一位乘(布斯公式)

计组_定点数一位乘_布斯公式

booth算法 booth算法简介

用Booth算法计算-4×3的4位补码乘法运算,要求写出每一步运算过程及运算结果 麻烦详细说明每一步的操作