问答题 真值X、Y均为(n-1)位二进制数(可正可负),试证明在字长为n位的存数单元中操作时,有[X]+[Y]=[X+Y]
【正确答案】分4种情况,即X≥0,Y≥0;X或Y≥0,Y或X<0但X+Y≥0;X或Y≥0,Y或X<0但X+Y<0;X<0,Y<0来分别证明。
   (1)当X≥0,Y≥0,若满足2n-1>(X+Y)≥0时,有
   [X]=X    (X≥0)
   [Y]=Y    (Y≥0)
   [X]+[Y]=X+Y=[X+Y]  (mod 2")
   (2)当X≥0,Y<0,若满足2n-1>(X+y)≥0时,由补码定义可得
   [X]=X    (X≥0)
   [Y]=2n+Y    (Y<0)
   [X+Y]=X+Y    (X+Y≥0)
   有 [X]+[Y]=X+2n+Y=X+Y    (X+Y≥0)
   所以  [X]+[Y]=[X+Y]    (mod 2")
   (3)当X≥0,Y<0,若满足0≥(X+Y)≥-2n-1时,由补码定义可得
   [X]=X    (X≥0)
   [Y]=2n+Y    (Y<0)
   [X+Y]=2n+(X+Y)(X+Y≤0)
   有 [X]+[Y]=X+2n+Y=2n+(X+Y)
   所以 [X]+[Y]=[X+Y]    (mod 2")
   (4)当X<0,Y<0,若满足0>(X+Y)≥-2n-1时,由补码定义可得
   [X]=2n+X    (X<0)
   [Y]=2n+Y    (Y<0)
   [X+Y]=2n+(X+Y)(X+Y<0)
   有 [X]+[Y]=2n+X+2n+Y=2n+(X+Y)  (其中一个2n产生一个进位而舍去),所以
   [X]+[Y]=[X+Y]    (mod 2")
   综上,当2n-1>X≥-2n-1,2n-1>Y≥-2n-1,且2n-1>(X+Y)≥-2n-1时,有
   [X]+[Y]=[X+Y]    (mod 2")
   此例说明,在进行补码加法运算时,不论相加两数的真值是正还是负,只要把它们表示成相应的补码形式,直接相加,其结果一定与真值直接相加后的补码是相等的。
【答案解析】