题目
某机字长8位,采用补码形式(其中1位为符号位),则机器数所能表示的范围是A. -127~127B. -128~+128C. -128~+127
某机字长8位,采用补码形式(其中1位为符号位),则机器数所能表示的范围是
A. -127~127
B. -128~+128
C. -128~+127
题目解答
答案
C. -128~+127
解析
补码表示法是计算机中表示有符号整数的常用方法。对于n位补码,其表示范围为:
- 最小值:$-2^{n-1}$(全1表示最大负数)
- 最大值:$+2^{n-1}-1$(符号位为0,其余位全1)
本题中,8位补码(符号位占1位,数值位占7位),因此:
- 最小值为 $-2^{7} = -128$
- 最大值为 $+2^{7}-1 = +127$
关键区别:补码相比原码能多表示一个最小值(如$-128$),而正数最大值不变(仍为$+127$)。
补码范围计算步骤
- 确定符号位:最高位为符号位,0表示正数,1表示负数。
- 计算正数范围:
- 正数补码与原码相同,最大值为符号位为0,其余7位全1,即 $01111111_{(2)} = +127$。
- 计算负数范围:
- 最小负数为符号位为1,其余7位全0,即 $10000000_{(2)} = -128$(直接按补码规则计算)。
- 综合范围:$-128 \sim +127$。
选项分析
- A. $-127 \sim +127$:错误,对应8位原码范围。
- B. $-128 \sim +128$:错误,正数最大值超过实际范围。
- C. $-128 \sim +127$:正确,符合补码特性。