【问题标题】:What is the largest/smallest fixed point number than can be represented in 2n bits?可以用 2n 位表示的最大/最小定点数是多少?
【发布时间】:2023-03-19 19:33:01
【问题描述】:

更具体地说,2n 位二进制数,n 位整数(包括一位符号)和 n 位小数。

我们可以表示的最小和最大的非零正数是多少?

我知道如何处理整数,但不确定分数。

【问题讨论】:

  • 这称为fixed point 表示。它是更常见的floating point 的更简单替代方案,有时用于缺乏浮点指令的机器上。

标签: binary bits fixed-point


【解决方案1】:

典型的二进制定点表示是一个以 2 的恒定幂缩放的整数,因此所涉及的因素是

  1. 整数的范围和
  2. 定点类型的刻度。

给定一个带符号位和2n-1 数字的二进制补码整数,正数的范围是[1..(2^(2n-1))-1],小数位数是2^-n。所以最小和最大正定点值是[1*2^-n..((2^(2n-1))-1)*2^-n]

例如,Cint16_t 类型有 15 位,因此其范围是 [1..(2^15)-1][1..32767]。在这里,n8 使比例为2^-81/256。所以缩放范围是[1/256..32767/256][0.00390625..127.99609375]。您可以使用这个C++ program 来计算n 的不同值的范围,使用CNL

【讨论】:

  • 现在这就是我所说的完整答案。我不知道 CNL,但它会非常有用,非常感谢 John。
猜你喜欢
  • 2015-03-22
  • 1970-01-01
  • 2018-10-23
  • 2019-04-30
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
相关资源
最近更新 更多