负数已知补码求原码 乘法运算的符号法则?
乘法运算的符号法则?
在定点计算机中,原码表示的两个数相乘的运算规则是:乘积的符号位由两个数的“异或”运算,而乘积的数字部分是两个正数相乘的乘积。设n位被乘数和乘法器用定点小数表示:
被乘数[x]原=XF。X0x1 x2 xn
乘数[y]原=YF。Y0 y1yyn,然后
乘积[Z]原=(XF⊕YF)。(0. X0x1 x2 xn)(0。Y1y2yn)
其中XF是乘法器的符号,YF是乘法器的符号。
乘积符号的运算法则是:同号相乘为正,异号相乘为负。由于被乘数、乘法器和符号组合是唯一的(XF,YF=00,01,10,11),所以乘积的符号可以通过异或运算得到。
数字部分的运算方法类似于普通的十进制乘法,但对于二进制表示的数字,其
更简单:从乘法y的最低位开始,如果该位为“1”,则写下被乘数X;如果该位为“全0”。然后,乘法器y的高位的乘法运算规则与上述相同,但是该位乘法器的权重不同于最低位的权重,因此乘法器x应该向左移动一位。以此类推,直到乘法器全部相乘,最后将它们全部相加,最后积Z。
定点数运算方法及溢出判别方法?
定点加减的溢出判断可以由单符号位溢出检测方法和双符号进位溢出检测方法确定。目前,补码广泛应用于定点的加减运算。
1. 加减运算法:根据补码的设计规则,任意一个绝对值相同的负数和正数,负数是正数加1的反码,所以如果把绝对值相同的负数和正数相加,正好好的结果都是0(最高的位被带入,并被丢弃)。通过与下补表的比较,我们可以发现,基于这种设计,当两个数相加时,符号位也可以直接参与运算,运算结果也包含符号位。
2. 溢出判断:(1)溢出只有正数和正数两种,结果为负数,发生溢出。负数和负数相加,结果为正数,并发生溢出。为什么正数和负数的相加不溢出?因为正数和负数的最大值的绝对值是相同的,所以正数和负数相加的结果必须在绝对值之内。减法只是取加数的补码并相加,所以知道加法的溢出就足够了。(2) 进位溢出法(单符号位)可以从补码表中看出:无溢出:将绝对值较大的负数和绝对值较小的正数相加,最高有效位(即最高值位)不会溢出,因此符号位没有进位。当绝对值较小的负数与绝对值较大的正数相加时,最高有效位溢出,符号位从1变为10(0)进位。溢出情况:上面已经知道:正数和正数相加,结果是负数,溢出。在这种情况下,最高有效位带进位,而符号位从0变为1,不带进位。负数和负数相加,结果为正数,并发生溢出。在这种情况下,最高有效位不进位,符号位从1变为10(0)。因此,当最高有效位的进位与符号位的进位不同时,就会发生溢出。(3) 双符号位进位溢出检测方法使用双符号位(00,11)进行加法,我们已经知道:所以当最高有效位和符号位的进位不同时,就表示发生了溢出。如果符号位被携带,如果它没有被携带,最高有效位将是11=10(110)。这是负溢出。如果符号位未进位,则最高有效位的进位变为00 1=01。这是一个正溢出。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。