相同大小的整数和浮点值在它们各自的最小值和最大值之间具有相同的粒度吗?

时间:2017-10-29 21:31:08

标签: encoding binary floating-point integer

我想知道一些关于 n 位中的有符号整数或带符号浮点表示是否在其最小值和最大值之间编码更多粒度的数学或理论(或者如果两者编码为相同的粒度)。

想象一个用例,我希望以32位的最大可能粒度表示音频样本。 MAX / MIN是观察到的绝对值最大的样本,0表示静音。目标是让每个样本在任何时刻都代表最接近声压(或电压)的真实值,并最大限度地减少由于四舍五入造成的信息损失。

我的直觉是整数和浮点表示将包含相同的粒度级别,因为每个都可以在MIN和MAX之间编码2 ^ 32个不同的值。

  1. 我是否正确地观察到它们可以编码的信息的绝对值的绝对数量相等?
  2. 一个表示的粒度是否比另一个更集中在特定范围内?我的直觉是浮点表示会将更多的粒度集中在零附近,并在其MAX / MIN值附近保留较少的粒度。换句话说,浮点表示将区分非常相似的值(例如.001和.002),只要这些值接近于零,但如果这些值不接近零,则不区分非常相似的值(例如,8388607.001)和8388607.002)。这是对的吗?

1 个答案:

答案 0 :(得分:2)

考虑传统的无符号32位二进制和IEEE 754 32位浮点。

整数格式编码从0到2 32 - 1的所有整数,没有别的。

浮点格式为每个2的幂范围编码2 23 数。它编码的数字与[2 -100 ,2 -99 )中的数量一样多,如[2 100 ,2 101 )。它实际上编码的数字值少于32位整数,因为它为无穷大和NaN(非数字)保留了一个值块。