计算题

证明: 在定点小数表示中, [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] (mod2)。
(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](mod2)。
当 X+Y<0, 2+(X+Y) <2, 又因 X+Y<0, 故
[X] +[Y] =2+(X+Y) =[X+Y] (mod2)。
(3) X<0, Y>0, 则 X+Y>0 或 X+Y<0。 同 2), 把 X 和 Y 的位置对调即可。
(4) X<0, Y<0, 则静 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] (mod2)
结论: 在模 2 意义下, 任意两数的补码之和等于两数之和的补码。 其结论也适用于定点整数。

【答案解析】