鉴于以下情况,我如何找到归一化浮点数的数量以及为什么?

Given the following, how do I find the number of normalized floating-point numbers and why?

我试图了解浮点数运算在使用二进制系统时如何在计算机科学中发挥作用。我从 What Every Computer Scientist Should Know About Floating-Point Arithmetic 中看到一段摘录,它将规范化数字定义为唯一的浮点数,前导尾数为非零。它接着说...

When β = 2, p = 3, e min = -1 and e max = 2 there are 16 normalized floating-point numbers, as shown in Figure D-1.

其中βbasepprecision e min最小指数e max最大指数.

我试图理解他是如何得出有 16 个归一化浮点数的结论的,我尝试将可能的有效数 β^p 和可能的数相乘指数 e max - e min + 1。我的结果是 32 个可能的归一化浮点值 。我不确定如何获得上述论文中声明的 16 归一化浮点值 的正确结果。我假设负浮点值被排除在外,但是,我没有将它们包括在我的计算中。

这个问题更适合数学公式。但它将帮助我更好地理解浮点运算在计算机科学中的工作原理。

我想知道如何得到16个归一化浮点数的正确结果以及为什么。

由于第一位始终为 1,因此尾数为 3 位,您只有两位可以变化,从而产生 4 个不同的尾数值。结合 4 个不同的指数值是 16。不过我还没有看过这篇论文。

My attempt at understanding how he came to the conclusion of there being 16 normalized floating-point numbers was to multiply together the possible number of significands β^p and the possible number of exponents e max - e min + 1

这是正确的,除了可能的有效数字的数量不是 βp 在二进制中隐式前导 1。在这些条件下,可能的有效数字的数量是 βp-1,在 p-1 位上编码。

换句话说,当编码保留时,可能的有效数字的缺失值已经被利用,比如说,52 位来编码 53 个二进制数字的精度。