签名溢出 - 为什么MSB的进位和执行应该匹配?

时间:2015-03-29 15:08:54

标签: assembly binary

如果MSB列的进位和输出不匹配,则在二进制加两个有符号整数时,会出现有符号溢出。

这条规则背后的逻辑是什么?为什么进位和执行应匹配才能得到正确的结果。 请解释一下。

1 个答案:

答案 0 :(得分:5)

显然有两个不匹配的案例:

  1. 有进,但没有进行。这必须意味着两个输入MSB都为0,但结果MSB为1.由于MSB是符号位,这相当于添加两个非负数并得到否定结果,从而溢出。
  2. 没有携带但是有执行。这必须意味着两个输入MSB均为1,但结果MSB为0.这相当于添加两个负数变为非负数,从而溢出。