算术溢出

时间:2010-08-02 20:53:07

标签: numbers overflow math signed

为什么在使用二进制补码添加正数和负数时不会发生算术溢出。如果你能提供一个8位有符号整数(字节)的例子。

2 个答案:

答案 0 :(得分:2)

这听起来像家庭作业。你的意思是使用'家庭作业'标签吗?

您无法溢出的原因是,添加正数x和负数y会产生值z,以便abs(z) < abs(x)和{{1} }。由于abs(z) < abs(y)x可以在没有溢出的情况下表示,并且y 更接近为零,因此z也可以在没有溢出的情况下表示

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

答案 1 :(得分:1)

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

S <= A && S >= B

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