如何找到具有指数和尾数的最大可表示整数?

时间:2018-09-05 19:19:04

标签: floating-point integer bit exponent mantissa

我有一个问题需要使用(6个指数和9个尾数)找到最大的可表示整数

我知道指数分为5位,尾数为10位,带1个符号位。

我知道如何找到尾数的低位和高位。我使用函数(k /(2 ^(尾数)))。但是,如何找到指数的高位和低位?它与位数(16)有关吗?

我正在看一些例子,说(5指数是-16和15)的高和低。但是他们到达那里的方式令我感到困惑。

谢谢

1 个答案:

答案 0 :(得分:2)

如果您的浮点格式遵循IEEE 754设置的模式,则编码指数将偏移其最大值的一半,向下舍入。因此,5个指数位可以保存从0到31的代码。四舍五入的31是15。因此,指数代码1表示数学指数1-15 = -14,而指数代码(例如27)表示a。 27-15 = 12的数学指数。

此外,在IEEE 754二进制浮点中,保留了最大指数代码以表示无穷大和NaN。因此,在您的情况下,有限值的最大指数代码将为30,表示30-15 = 15的数学指数。

但是,没有法律规定任何人必须使用IEEE754。因此,您的格式只有1个符号位,5个指数位和10个有效位的事实并不能告诉我们实际的数学指数值是多少。有人可以选择将指数代码再加上一个其他值,也可以将最大值用于常规数字,而不是无穷大和NaN。并且,根据您的信息,数学指数范围是从-15到16,看来规范似乎是所有指数代码都代表数字,并且没有整数或NaN。这表明指数有15的偏差,最大指数代码31表示数学指数16。

这也表明没有次正规数,因为次正规数通常将由指数代码0编码,这意味着有效位数的隐含前导位为0(对于常规数而言是1),并且指数将固定在-14而不是减小到-15。您的信息显示最小指数为-15的事实表明这种情况没有发生,因此没有采用这种格式的次正规数。

尽管如此,关于必须采用哪种浮点格式也没有法律规定。有人可以做出其他选择。应该有一个描述这种浮点格式的规范,这是必要信息的来源。