通俗易理解的定点数的乘法运算

首先我们知道的是在机器中一般进行运算的补码,因为补码的特性:用单纯的机器码加法运算实现了有符号数的加减法(普及一下个人理解),但是对于一些正数而言,原码即时补码,所以再讲补码的乘法运算前,想讲一下原码的乘法运算。下面步入正题

介绍一下两个知识点:1、在机器中很难做到一次求和的操作,所以我们要分阶段求和并且累加求和

                                    2、如果某机器字长为n位,则数据为n位,n位xn位很有可能等于2n位,导致机器内存储不了这样的数据

                                    解决办法:在求积过程中将左移位积的操作变成位积不动而是上次部分积保持不动实现等同的操作(如果用物理中的名词来形容的话,就是相对运动,纯个人理解)如果是左移的操作就会不断地增加高位,但是你改变思路实现右移的话就可以不断地去除低位。

接下来介绍一下Booth算法:(1)被乘数与乘数均已补码的形式参加乘法运算,结果是积的补码。

                                             (2)被乘数采用双符号位,乘数用单符号位

                                             (3)在乘数的补码中的末位添加一个0。

                                             (4)根据乘数中倒数第二位减倒数第一位的值的进行选择:0 直接右移 -1加上被乘数的补码 1加上被乘数相反数的补码。

                                          (5)累加进行n+1次,右移n次,最后一次不右移。 

Booth算法就是补码乘法运算的规则。

你可能感兴趣的:(计算机组成原理)