题目
运算器在执行两个用补码表示的整数加法时,下面判断是否溢出的规则中______是正确的。A. 两个整数相加,若最高位(符号位)有进位,则一定发生溢出B. 两个整数相加,若结果的符号位为0,则一定发生溢出C. 两个整数相加,若结果的符号位为1,则一定发生溢出D. 两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出
运算器在执行两个用补码表示的整数加法时,下面判断是否溢出的规则中______是正确的。
A. 两个整数相加,若最高位(符号位)有进位,则一定发生溢出
B. 两个整数相加,若结果的符号位为0,则一定发生溢出
C. 两个整数相加,若结果的符号位为1,则一定发生溢出
D. 两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出
题目解答
答案
D. 两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出
解析
补码加法溢出判断的核心在于符号位的变化。当两个同符号的数相加时:
- 若结果的符号位与加数的符号位相反,说明运算结果超出了整数范围,发生溢出;
- 若符号位保持一致,则未溢出。
选项D的条件“同号相加且结果符号相反”直接对应了溢出的本质,因此正确。其他选项的判断条件或逻辑存在漏洞,无法准确判定溢出。
选项分析
选项A
“符号位有进位”不一定导致溢出。例如,两个正数相加时,符号位(最高位)可能产生进位,但结果仍为正数(未溢出)。因此该选项错误。
选项B
结果符号位为0(正数)可能是正常加法结果(如两个正数相加),与溢出无关。因此该选项错误。
选项C
结果符号位为1(负数)可能是正常加法结果(如两个负数相加),与溢出无关。因此该选项错误。
选项D
同号相加时:
- 两个正数相加,若结果符号位为1(负数),说明正数溢出;
- 两个负数相加,若结果符号位为0(正数),说明负数溢出。
此时符号位与加数符号相反,必然发生溢出。因此该选项正确。