可以用 2n 位表示的 largest/smallest 定点数是多少?

What is the largest/smallest fixed point number than can be represented in 2n bits?

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

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

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

典型的二进制定点表示是一个整数,按 2 的常数次幂缩放,因此涉及的因数是

  1. 整数范围和
  2. 定点类型的比例。

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

例如C's int16_t type has 15 digits so its range is [1..(2^15)-1] or [1..32767]. Here, n is 8 making the scale 2^-8 or 1/256. So the scaled range is [1/256..32767/256] or [0.00390625..127.99609375]. You can use this C++ program to calculate the range for different values of n using CNL.