资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,定点补码一位乘法的实现算法,用,X,补,Y,补,直接求,XY,补,讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。,若,Y,补,=,Y,0,Y,1,Y,2,Y,n,当,Y,0,为1时,则有,Y=1 Y,i,2,-i,故有,XY=X Y,i,2,-1,X,当,Y,为负值时,用补码乘计算,XY,补,,是用,X,补,乘上,Y,补,的数值位,而不理,Y,补,符号位上的1,乘完之后,在所得的乘积中再减,X,,即加,X,补,。,定点补码一位乘法的实现算法,实现补码乘法的另一个方案是比较法,是由,BOOTH,最早提出的,这一方法的出发点是避免区分乘数符号的正负,而且让乘数符号位也参加运算。技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个-1:,XY=X(1 Y,i,2,i,)(,逐项展开则得),=,XY,0,Y,1,2,-1,Y,2,2,-2,Y,n,2,-n,=XY,0,(Y,1,Y,1,2,-1,)(Y,2,2,-1,Y,2,2,-2,)(,Y,n,2,-(n-1),Y,n,2,-n,),(,合并相同幂次项得),定点补码一位乘法的实现算法,=,X(Y,1,Y,0,)(Y,2,Y,1,)2,-1,(,Y,n,Y,n,-1,)2,-(n-1),(0,Y,n,)2,-n,=X (Y,i+1,Y,i,)2,-i,(,写成累加求和的形式,得到实现补码乘运算的算法),将上述公式展开,则每一次的部分积为:,P,1,=2,-1,(,Y,n,+1,Y,n,)X,补,P,2,=2,-1,(P,1,(,Y,n,Y,n,-1,)X),补,P,i,=2,-1,(,P,n,-i,(,Y,n,-I+2,Y,n,-I+1,)X),补,定点补码一位乘法的实现算法,P,n,=2,-1,(,P,n,-1,(Y,2,Y,1,)X),补,P,n,+1,=(,P,n,(Y,1,Y,0,)X),补,则最终补码乘积为,X*Y,补,=,P,n,+1,补,由上述公式可以看出,比较法是用乘数中每相邻的两位判断如何求得每次的相加数。,每两位,Y,i,和,Y,i+1,的取值有00,01,10,11四种组合,则它们的差值分别为0,1,-1和0,非最后一次的部分积,分别为上一次部分积的1/2(右移一位)的值,R,j,,,R,j,X,补,,,Rj,X,补,(即,R,j,X,补,)和,R,j,,,但一定要注意:最后一次求出的部分积即为最终乘积,不执行右移操作。,定点补码一位乘法的实现算法,用此法计算乘积,需要乘数寄存器的最低一位之后再补充一位,Y,n,+1,,,并使其初值为0,再增加对,Y,n,和,Y,n,+1,两位进行译码的线路,以区分出,Y,n,+1,Y,n,4,种不同的差值。对,N,位的数(不含符号位)相乘,要计算,N+1,次部分积,并且不对最后一次部分积执行右移操作。此时的加法器最好采用双符号位方案。,原码一位除法的实现算法,计算机中常用原码的加减交替法完成除法运算,商的符号为相除二数符号的异或值,数值则为二数的绝对值之商。,除法的算法有恢复余数法和不恢复余数法(加减交替法)二种。,原码一位除法实现方案小结:,(1)对定点小数除法,首先要比较除数和被除数的绝对值的大小,防止出现数值溢出的错误。,(2)商的符号为相除二数的半加和。,(3)在计算机中用加减交替法实现除法时,被除数的位数可以是除数的2倍,其低位的数值部分,开始时放在用于保存商的寄存器中。运算过程中,放被除数和商的寄存器同时左移位。,(4)在计算机中,求差和移位是在同一操作步骤中完成的,而不是用两个步骤完成。,定点补码一位除法的实现算法,运算规则如下:,(1)如果被除数与除数同号,开始求商时,用被除数减去除数,若二数异号,则用被除数加上除数的办法处理。,(2)若余数与除数同号,上商1,左移一位后下次用余数减除数操作求商,若余数与除数异号,上商0,左移一位后下次用余数加除数操作求商。,(3)商的符号,是在第一次求商试算时求出的,若定点除不溢出,得到的就是正确的符号位的值。,(4)商的修正问题。在对精度要求不高时,将商的最低一位恒置1。最大误差为|2,-,n,|。,若对商的精度要求较高,可对,N,位数求商,N+1,次,按得到的不同结果对商进行修正。当商为负数时,要在商的最低一位加1,从反码的结果得到商的正确的补码值。,定点双位乘法的实现方案,阵列乘法器,跳0 跳1法,(1)如果,R0,,且,R,的高,K,个数位均为0,则本次直接得商1后跟,K-1,个0,,R,左移,K,位后,减出除数,D,,得新,余数。,(2)如果,R0,,且,R,的高,K,个数位均为1,则本次直接得商0后跟,K-1,个1,,R,左移,K,位后,加上除数,D,,得新余数。,用快速乘法器实现快速除法运算,
展开阅读全文