用八位二进制补码怎么计算12+9?怎么表示?
问题描述:
用八位二进制补码怎么计算12+9?怎么表示?
答
你的理解不正确,你的这两个数异号,运算结果永远不会溢出,按照你的5位运算后,第六位的进位实际上没有运算结果的意义,纯粹是补码运算带来的,因此就丢掉了,结果是01010,正好是+10的补码
根据补码运算规则,只有无符号数的相加运算的最高位有进位才表示溢出
还有一种溢出的情况就是同号相加符号改变:
两个正数相加的结果是负数:01011+ 01100 = 10111,用10进制表示就是11+ 12 = -9
或者两个负数相加成为正数:10101 + 11001 = 1 01110,用10进制表示就是-11 + (-7) = 14
具体结果为什么如此,请从补码的定义考虑
顺便说一句,其实无论多少位的补码运算都是如此