单选题 若[X]=X0X1X2…Xn,其中X0为符号位,X1为最高数位。若______,则当补码算术左移时,将会发生溢出。
  • A.X0=X1
  • B.X0≠X1
  • C.X1=0
  • D.X1=1
【正确答案】 B
【答案解析】[解析] 算术移位时,左移一位如不发生溢出,相当于数值×2;右移一位如不考虑舍入误差,相当于数值÷2。
解法一:当X0≠X1时,联想到浮点尾数的规格化形式,此时再左移一位必然溢出。
解法二:当x为正数时(X0=1),机器数中“1”为有效位、“0”为无效位,算术左移丢1,则结果溢出(此时X0=0,X1=1)。当x为负数时(X1=1),高数位的“0”为有效位、“1”为无效位,算术左移丢0,则结果溢出(此时X0=1,X1=0)。综合考虑,只能选B。