为什么在使用二进制补码添加正数和负数时不会发生算术溢出。如果你能提供一个8位有符号整数(字节)的例子。
答案 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
他们的总和将在中间的某个地方。请注意,会有一个进位,但这不是溢出(不正确的总和)。