题目
两个操作数运算时,下列哪种结果会发生溢出 。A. 两个负数相加,结果为负B. 两个正数相加,结果为负C. 一正一负相加,结果为负D. 两个正数相加,结果为正
两个操作数运算时,下列哪种结果会发生溢出 。
- A. 两个负数相加,结果为负
- B. 两个正数相加,结果为负
- C. 一正一负相加,结果为负
- D. 两个正数相加,结果为正
题目解答
答案
B.两个正数相加,结果为负
解析
溢出是指运算结果超出数据类型表示范围的现象。在有符号数加减法中,符号位的变化是判断溢出的关键:
- 同号数相加:若结果符号与原操作数符号相同,则无溢出;若符号不同,则溢出。
- 异号数相加:结果符号由绝对值大的数决定,一般不会溢出。
本题中,两个正数相加结果为负(选项B)违背了符号规律,必然发生溢出。
选项分析
选项A:两个负数相加,结果为负
- 两个负数相加,结果符号应为负,与操作数符号一致,无溢出。
选项B:两个正数相加,结果为负
- 正数相加结果应为正,若结果为负,说明运算结果超出正数最大值范围,导致符号位翻转,发生溢出。
选项C:一正一负相加,结果为负
- 结果符号由绝对值大的数决定,属于正常运算,无溢出。
选项D:两个正数相加,结果为正
- 符号与操作数一致,若未超出正数范围则无溢出。