为什么使用二进制补码将正数和负数相加时不会发生算术溢出。如果可以请提供一个带有 8 位有符号整数(字节)的示例。
2 回答
2
这......听起来像家庭作业。您的意思是使用“作业”标签吗?
你不能溢出的原因是因为添加一个正数x
和一个负数y
会产生一个值z
,例如abs(z) < abs(x)
and abs(z) < abs(y)
。因为x
andy
可以表示为没有溢出,并且比任何一个z
都更接近于零,z
所以也可以表示为没有溢出。
任何一对正数和负数都是一个例子。
于 2010-08-02T20:57:12.223 回答
1
假设您有一个正数A
和一个负数B
。他们的总和是S
。然后:
S <= A && S >= B
他们的总和将在中间的某个地方。请注意,会有进位,但这不是溢出(不正确的总和)。
于 2010-08-02T20:56:47.170 回答