浦东计算机乘法加起来,计算机定点乘法运算,归纳起来有两种方法

实现乘法运算的方法较多,归纳起来不外乎两种方法:一是软件方法,一是硬件方法。软件方法就是利用机器的基本指令编写子程序,当需要作乘法运算时,通过调用子程序实现,这种方法一般在低档小型机和微型机中采用。硬件方法则是在功能较强的机器中使用,有的以加法为核心,实现乘法运算的硬件组织,在速度快、功能强的大中型机器中,还专门设置了多位阵列乘法器部件,也就是说乘法运算完全是由硬件实现的。这一节主要讨论硬件方法,即以加法器为核心来实现乘法运算,以及阵列乘法器件,讨论乘法运算规则、算法流程及硬件实现。

9c0eea7b09a7c40566faab19974f6094.png

1.原码一位乘法

由于原码的数值部分与真值相同,所以考虑原码一位乘法的运算规则和运算方法时,可以从手算中得到一些启发。二进制乘法与十进制乘法十分相似,手算过程似乎比机器内部计算还要简单一些。

例如:x=+0.1101,y=-0.1011,求x×y=?

2b0647413ad8d8853a7bf75371a5401e.png

由于异号相乘,所以x×y=-0.10001111。

计算过程与十进制一样,也是从乘数的最低位开始,一位一位地向左与被乘数相乘,乘积是由两个因素决定的:乘积的数值和符号,对这两个因素要分别处理。由此可以知道,从手算到机器实现,应该有以下几个问题要解决:

(1)乘积的符号问题。对于原码乘法来说,由于符号位与尾数是分别处理的,所以乘积的符号应是同号相乘为正,异号相乘为负,这个逻辑实现很容易。

假设被乘数x=xf.x1x2x3…xn,乘数y=yf.y1y2y3…yn,xf,yf分别是两个操作数的符号,Sf是乘积结果的数符,那么Sf=xf

yf,即xf,yf相异时,Sf=1,为负;xf,yf相同时,Sf=0为正。

(2)位权对齐的问题。因为乘积的符号是单独处理的,所以乘积的数值可以由被乘数与乘数的绝对值之积求得,即|S|=|X|×|Y|。

通过手算的计算过程,乘数从右向左每进一位,得到的部分积也会向左移一位,这时就需要更多位的寄存器来存储乘法计算过程中得到的部分积。

665a0abd1e6b7cae411ee20d86203466.png

(3)乘数的位数问题。若干个部分积一起相加,比较困难,而且会出现有的部分积是0,却仍要占一个操作数的位置,由于机器中已有两个操作数相加的加法器,故应充分利用已有的部件,将几位乘法转化为几次累加、移位来实现。即从右向左每次处理一位乘数,每求得一个部分积,就立即累加,部分积的初值为0,累加后,部分积右移一位,等待新的部分积算出后,再累加,直到乘数最高位,累加后得最后结果。这样将原来的部分积右移一位,就可以使原部分积中不需要累加的一位右移,而不参加加法运算,这样也就不需要增加加法器的位数了。

abe1d16454b207eaae3af3bdfe341ab7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值