若八位二进制数[X1原=01010110,[Y1原00110100,[X2补=1010001 1,[Y2补=11011010,则进行运算[X1原+[Y1原,[X2补+[Y2补会产生的结果是______ 。 A.前者下溢,后者上溢 B.两者都上溢 C.两者都

admin2013-02-02  35

问题 若八位二进制数[X1原=01010110,[Y1原00110100,[X2补=1010001 1,[Y2补=11011010,则进行运算[X1原+[Y1原,[X2补+[Y2补会产生的结果是______ 。
A.前者下溢,后者上溢
B.两者都上溢
C.两者都不会产生溢出
D.前者上溢,后者下溢

选项 A、 
B、 
C、 
D、 

答案D

解析 对于8位二进制数,用原码进行运算时,结果小于-127或者大于+127就发生溢出;用补码运算时,若结果小于-128或者大于+127就溢出。如果是正数超过表示范围,则称“上溢”,负数超出表示范围就称“下溢”。
   对于补码判断是否产生溢出,通常有两种方法。一是采用双符号位,用“11”表示负,“00”表示正。若两个符号位相同,则无溢出,若为“10”则为下溢,为“01”则为上溢。若采用该方法,[X1]原+[Y1]原(正数的原码等于补码)的双符号位由“00”变为“01”,产生了上溢;[X2]补+[Y2]补的双符号由“11”变为“10”,产生了下溢。另外一种方法是使用单符号位,用最高位向前的进位与次高位向前的进位相异或,如果结果为0表示无溢出,结果为1有溢出。当结果的最高位为0时为下溢,最高位为1时为上溢。
转载请注明原文地址:https://kaotiyun.com/show/SGVZ777K
0

最新回复(0)