← FPGA数字IC知识手册

推荐答案 测试一下

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原因
← 上一题
登录后反馈错题
下一题 →