根据运算前后的符号位可判别溢出。设X、Y、Z分别表示两个参加运算的数的符号位及运算结果的符号位,那么若逻辑表达式X.Y.的值与..Z的值进行(38)运算的结果为1,则表示溢出。

admin2010-01-23  37

问题 根据运算前后的符号位可判别溢出。设X、Y、Z分别表示两个参加运算的数的符号位及运算结果的符号位,那么若逻辑表达式X.Y.的值与..Z的值进行(38)运算的结果为1,则表示溢出。

选项 A、与
B、或
C、与非
D、异或

答案B

解析 当两个同符号数相加或者两异号数相减时,运算结果若超出固定码长的数据表示范围,就会发生溢出。例如,X=+65D=+1000001B(D、B分别表示十进制数、二进制数),Y=+67D=+1000011B,编码总长度为8位,那么:
            [X+Y]=[X]+[Y]=0 1000001+0 1000011=1 0000100
符号位为1,表示结果为负数,两正数相加得负数,这显然是荒谬的,因为发生了溢出。
   判断溢出有四种方式:
   ①双符号位法,即用00表示正数,11表示负数,当运算结果的两个符号位上的数不一样时,则表明发生了溢出。承上例:
           [X+Y]=[X]+[Y]=00 1000001+00 1000011=01 0000100
   ②进位判断法,当数值最高位和符号位向上一位都有进位或者都没有进位的时候(即异或结果为0),表示没有溢出,否则表示有溢出。
   ③根据运算结果的符号位SF和进位标志CF的异或结果来判断,即若SFCF结果为1,表示运算的结果产生溢出。
   ④根据运算前后的符号位进行判别,设X、Y、Z分别表示两个参加运算的数的符号位及运算结果的符号位,那么若逻辑表达式的值为1,则表示溢出。或运算也称为逻辑加,常用符号OR、∪、V或+表示。
   从上面的分析可见,在做题时要注意将其作为引子举一反三,此次考的是用第④种方法判断溢出,以后考的就可能是其余三种,而将这四种都掌握了,“鱼网”就织得密集结实,做到了未雨绸缪,获胜的把握就更大。
转载请注明原文地址:https://kaotiyun.com/show/FlxZ777K
0

相关试题推荐
最新回复(0)