0

为什么使用二进制补码将正数和负数相加时不会发生算术溢出。如果可以请提供一个带有 8 位有符号整数(字节)的示例。

4

2 回答 2

2

这......听起来像家庭作业。您的意思是使用“作业”标签吗?

你不能溢出的原因是因为添加一个正数x和一个负数y会产生一个值z,例如abs(z) < abs(x)and abs(z) < abs(y)。因为xandy可以表示为没有溢出,并且比任何一个z更接近于零,z所以也可以表示为没有溢出。

任何一对正数和负数都是一个例子。

于 2010-08-02T20:57:12.223 回答
1

假设您有一个正数A和一个负数B。他们的总和是S。然后:

S <= A && S >= B

他们的总和将在中间的某个地方。请注意,会有进位,但这不是溢出(不正确的总和)。

于 2010-08-02T20:56:47.170 回答