【正确答案】
B
【答案解析】[解析] 本题看上去较为复杂,因为牵涉到乘法运算。但本题的考查目的在于对补码的范围和溢出的理解。补码的最高位是符号位,相乘中只参与正负运算;溢出就是(本题中是8位)无法表示得到的结果。因此,如果按照书本上的方式来算出每个结果再判定,这肯定会浪费时间。正确的解题方法如下:
8位补码所表示的十进制范围为-128~+127,可把4个十六进制数全部转换为十进制,进行口算相乘(适合数字很小的运算),得出的结果中,最大的就是会溢出的。
r1=FEH=1111 1110,符号位为1,说明为负数。除符号位取反加1,即1000 00010,故r1=-2。
同理可得,r2=-14,r3=-112,r4=-8,故
r1×r2=28 r2×r3=1568
r1×r4=16 r2×r4=112
因此,只有r2×r3超出了范围-128~+127。