问题 单项选择题

两个同符号的数相加或异符号的数相减,所得结果的符号位SF和进位标识CP进行()运算为1时,表示运算的结果产生溢出。

A.与

B.或

C. 与非

D.异或

答案

参考答案:D

解析:

这一类型的题目考查的知识点是补码的运算及其溢出。

在确定了运算的字长和数据的表示方法后,数据的范围也就确定了。一旦运算结果超出所能表示的数据范围,就会发生溢出。发生溢出时,运算结果肯定是错误的。

当两个同符号的数相加(或者是相异符号数相减)时,运算结果有可能产生溢出。

常用的溢出检测机制主要有进位判决法和双符号位判决法。

(1)双符号位判决法

若采用两位表示符号,即00表示正号,11表示负号,则溢出时两个符号位就不一致了,从而可以判定发生了溢出。这需要通过异或运算判别。

(2)进位判决法

令Cn-1表示最高数值位向最高位的进位,Cn表示符号位的进位,则Cn-1Cn=1表示溢出。

解答此类题目的一般思路是将所给带符号数的符号位用双符号位表示,然后转换成补码,进行补码运算,得到结果。因此可以知道本题中的运算为异或运算。应选择答案D。要注意;结果溢出和结果产生进位是两个概念,溢出表示运算结果出错,进位表示最高位产生了进位,但结果并未出错。

选择题
单项选择题