推荐答案
测试一下
题目
N位二进制数所能表示的数据范围
参考答案与知识点
参考答案
1. 无符号整数(N bit):范围为 0 ~ (2^N - 1)。例如 N=8 时,0~255。
2. 有符号整数(补码,N bit):范围为 -2^(N-1) ~ (2^(N-1) - 1)。正数范围减1是因为0计入正数侧。例如 N=8 时,-128~127。
3. 有符号定点数(如 N=8, 3Q5):3位整数位(含1位符号位),5位小数位。实际整数部分2位,最大值:整数最大为 2^2 - 1 = 3,加上所有小数位为1时的值(近1),再减去最小精度 2^(-5)。即最大值 = 3 + (1 - 2^(-5)) = 4 - 2^(-5)。最小值 = -(整数最大+1) + 最小精度 = -4 + 2^(-5)(对称非对称,因补码范围不对称)。
4. N bit与M bit数相加:结果位宽 = max(N, M) + 1(考虑进位,有符号数还需防止溢出)。
5. N bit与M bit数相乘:结果位宽 = N + M(无符号数最大积需 N+M 位;有符号数同样需要 N+M 位,含符号位)。
考点:补码表示不对称、定点数定点范围计算、位宽扩展时进位与符号位的考虑。易错点:有符号数正负数范围不对称;定点数最大值减精度是因为0占一个统计区间;加法多1位用于进位/符号扩展;乘法直接位宽相加。
涉及知识点
- 无符号整数范围公式
- 有符号补码范围及不对称性
- 定点数位宽与精度计算
- 加法结果位宽: max+1
- 乘法结果位宽: N+M
- 补码正数范围减1原因