补码的加法运算法则如下:
该式表明,两个有符号数相加的补码可以通过先分别对两个数求补码,然后相加得到。在采用补码形式表示时,进行加法运算时可以把符号位和数值位一起进行运算(若符号位有进位,则溢出不管),结果为两数之和的补码形式。
如要求两个十进制数:35+18的补码(假设字长为8)。根据上面的补码加法运算法则可以得知,只需分别求35和18这两个数的补码,然后相加即可。又因这两个数都是正数,所以它们的补码与原码一样。这样一来,这道题实际上也就是求35和18这两个十进制数的原码和。35的原码为0 0100011(注意:最高位为符号位),18的补码为0 0010010。所以35+18的补码就等于(0 0100011)B+(0 0010010)B=(00110101)B,如图1-18a所示。如果转换成十进制就等于53,结果正确。如果相加后有超过字长的位溢出,则直接丢弃。
同理,如果要求两个十进制数:35+(-18)和的补码也是直接求35和-18的补码和。35的补码与其原码一样,前面已计算出,为0 0100011;而后面那
该式表明,两个有符号数相加的补码可以通过先分别对两个数求补码,然后相加得到。在采用补码形式表示时,进行加法运算时可以把符号位和数值位一起进行运算(若符号位有进位,则溢出不管),结果为两数之和的补码形式。
如要求两个十进制数:35+18的补码(假设字长为8)。根据上面的补码加法运算法则可以得知,只需分别求35和18这两个数的补码,然后相加即可。又因这两个数都是正数,所以它们的补码与原码一样。这样一来,这道题实际上也就是求35和18这两个十进制数的原码和。35的原码为0 0100011(注意:最高位为符号位),18的补码为0 0010010。所以35+18的补码就等于(0 0100011)B+(0 0010010)B=(00110101)B,如图1-18a所示。如果转换成十进制就等于53,结果正确。如果相加后有超过字长的位溢出,则直接丢弃。
同理,如果要求两个十进制数:35+(-18)和的补码也是直接求35和-18的补码和。35的补码与其原码一样,前面已计算出,为0 0100011;而后面那

