问答题 证明定点小数表示中
[X] +[Y] =2+(X+Y)=[X+Y]
【正确答案】
【答案解析】提示:采用定点小数表示,条件是:|X|<1,|Y|<1,|X+Y|<1。所以分4种情况证明:
(1)X>0,Y>0,则X+Y>0。
因为X、Y都是正数,而正数的补码和原码是一样的,所以得:
[X] +[Y] =X+Y=[X+Y] (mod 2)
(2)X>0,Y<0,则X+Y>0或X+Y<0。
一正数和一负数相加,结果有正、负两种可能。根据补码定义得:
[X] =X,[Y] =2+Y
即[X] +[Y] =X+2+Y=2+(X+Y)
当X+Y>0,2+(X+Y)>2,进位2必丢失,又因(X+Y)>0,故:
[X] +[Y] =X+Y=[X+Y] (mod 2)
当X+Y<0,2+(X+Y)<2,又因(X+Y)<0,故:
[X] +[Y] =2+(X+Y)=[X+Y] (mod 2)
(3)X<0,Y>0,则X+Y>0或X+Y<0。
同(2),把X和Y的位置对调即可。
(4)X<0,Y<0,则X+Y<0。
两负数相加,则其和也一定是负数。
因为[X] =2+X,[Y] =2+Y
即[X] +[Y] =2+X+2+Y=2+(2+X+Y)
又|X+Y|<1,1<(2+X+Y)<2,2+(2+X+Y)进位2必丢失,而X+Y<0
故[X] +[Y] =2+(X+ Y )=[X+Y] (mod 2)
结论:在模2意义下,任意两数的补码之和等于两数之和的补码。其结论也适用于定点整数。