我有一个问题需要使用(6 指数和 9 尾数)找到最大的可表示整数
我知道指数有 5 位,尾数有 10 位,有 1 个符号位。
我知道如何找到尾数的低位和高位。我使用函数 (k/(2^(尾数)))。但是如何找到指数的高位和低位?它与位数(16)有关吗?
我正在查看说明(5 指数为 -16 和 15)的高和低的示例。但他们是如何到达那里的,我很困惑。
谢谢
我有一个问题需要使用(6 指数和 9 尾数)找到最大的可表示整数
我知道指数有 5 位,尾数有 10 位,有 1 个符号位。
我知道如何找到尾数的低位和高位。我使用函数 (k/(2^(尾数)))。但是如何找到指数的高位和低位?它与位数(16)有关吗?
我正在查看说明(5 指数为 -16 和 15)的高和低的示例。但他们是如何到达那里的,我很困惑。
谢谢
如果您的浮点格式遵循 IEEE 754 设置的模式,则编码的指数会偏移其最大值的一半,并向下舍入。因此,5 个指数位可以保存从 0 到 31 的代码。向下舍入的 31 的一半是 15。因此,指数代码 1 表示数学指数 1-15 = -14,而指数代码(例如 27)表示27−15 = 12 的数学指数。
此外,在 IEEE 754 二进制浮点中,保留最大指数代码以表示无穷大和 NaN。因此,在您的情况下,有限值的最大指数代码为 30,表示数学指数为 30−15 = 15。
但是,没有法律规定任何人都必须使用 IEEE 754。因此,您的格式具有 1 个符号位、5 个指数位和 10 个有效位这一事实并不能告诉我们实际的数学指数值是什么。有人可以选择将指数代码偏向另一个值,或者将最大值用于常规数字,而不是无穷大和 NaN。而且,鉴于您提供的数学指数范围是 -15 到 16 的信息,似乎规范可能是所有指数代码都表示数字,并且没有无穷大或 NaN。这表明指数有 15 的偏差,最大指数代码 31 表示数学指数 16。
它还表明不存在次正规数,因为次正规数通常由指数代码 0 编码,这意味着有效数字的隐式前导位是 0(而不是正常数的 1)并且数学指数会钳位在 -14 而不是减少到 -15。您的信息表明最小指数为 -15 的事实表明这没有发生,因此这种格式中没有次正规数。
不过,同样没有关于浮点格式必须是什么的法律。有人可以做出其他选择。应该有一个描述这种浮点格式的规范,这就是必要信息的来源。