35的原码:00100011。-18的原码:10010010。
因为35是正数,补码与原码完全一致,但是-18是负数,补码需要转换。
35的补码:00100011。-18的补码:由原码除符号位外取反,再在最低位+1,得到结果是11101110。这时都是补码,运算规则等同于无符号二进制加法。
00100011 11101110 100010001---因为前面规定了字长是8位,这里出现了9位, 所以最高位舍弃,舍弃后,结果为00010001, 转换成十进制是:17。结果正确!(超出字长部分直接舍弃)
二、补码减法:
1、补码的减法运算
减法实际上就是加一个负数。运算法则和加法实际上是一致的!