3.4.2 补码加减运算

补码的加减运算可按下列公式进行:

[X+Y]=[X]+[Y]

[X-Y]=[X+(-Y)]=[X]+[-Y]

不管Y的真值为正还是为负,已知[Y]求其机器负数[-Y]的方法都是:将[Y]连同符号位一起变反,末尾加1。

【例3-5】已知[Y]=01011001,求[-Y]

结果为[-Y]=10100110+1=10100111。

由补码的加减运算公式可知,当有符号的两个数采用补码形式表示,进行加减运算时具有如下规则:

①参加运算的操作数用补码表示。

②符号位和数值位一起参加运算。

③若指令操作码为加,则两数直接相加。若操作码为减,则将减数转换为负数的补码后与被减数相加。

④运算结果仍然是补码表示。

计算机中采用补码表示的最大优点是可以将算术运算的减法转化为加法来实现,即不论加法还是减法,计算机中一律只做加法。

【例3-6】已知X=119,Y=-117,求X+Y。

假设用8位二进制表示一个数,则

运算结果最高位有进位,则丢去最高位1,运算结果正好是+2的补码。