【问题标题】:Do integer and floating-point values of the same size have the same granularity between their respective min and max values?相同大小的整数和浮点值在它们各自的最小值和最大值之间是否具有相同的粒度?
【发布时间】:2018-04-10 20:28:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 浮点对不同的大小编码不同的粒度。小数量的数字非常接近。大的数字相距甚远。
  • 谢谢,所以区别在于粒度集中在哪里:对于整数,粒度在整个范围内线性分布,而对于浮点,它集中在小数周围,以牺牲大数为代价。
  • 浮点中的点浮动。那就是浮点数的点。

标签: encoding binary floating-point integer


【解决方案1】:

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

整数格式编码从 0 到 232 - 1 的所有整数,仅此而已。

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

【讨论】:

  • 谢谢。实际上,仅通过阅读您的回答历史,我就获得了很多信息。 SO 一如既往地是寻找特定主题专家的好地方。
猜你喜欢
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多