用变形补码运算方法求X+Y?已知X=-0.0101,Y=0.1001
解:
已知:X=-0.0101,Y=0.1001
则:X+Y=-0.0101+0.1001=0.09
变形补码,又称”模4补码“即用两个二进制位来表示数字的符号位,其余与补码相同。变形补码,用“00”表示正,用“11”表示负,也称为模4的补码。用变形补码进行加减运算时,当运算结果的符号位出现“01”或者“10”时,则表示产生溢出。
产生01的情况:
补码:
0 111
+ 0 010
————
1 001
两个正数相加出现了负数,明显有误,就是说此时产生了上溢出(注:补码运算时符号位也参与运算)
变形补码:
00 111
+ 00 010
————
01 001
此时读数时,由于左边的符号位是0,所以表示正数,读成+9,而不像模二补码中变成了-1
已知:X=-0.0101,Y=0.1001,
则:X+Y=-0.0101+0.1001=0.09
你给出的两个数X有负号,所以X为真值;Y没有给正负号,所以Y应该为机器码,从首位符号位为0可以判断为正数,正数原码、补码、反码都相同,所以Y可以当成补码来看。
如上所述,X为真值,但题目要求用变形补码来解答,首先把X变为原码1.0101,然后把原码变为补码1.1011,然后把X变成双符号位的变行补码11.0101,把Y变为双符号位的变行补码00.1001,然后X+Y可以得到100.0100,第一位1为溢出,舍弃不管,第二位与第三位符号位都为0,表示计算结果没有上溢为正数,所以两个0可以写为一个0,X+Y最终结果为0.0100
因为,并没有任何计算机,使用变形补码。
分析来,分析去,都不符合实际情况。
所以,在这方面进行分析与计算,都是毫无意义的。
当然,创造出变形补码的专家,不会同意这个说法。