如何计算IEEE Extended Double precision的Min和Max值?

时间:2010-02-24 02:14:35

标签: floating-point standards

我知道min和值是:
分钟:3.362... 10-4932
最大:1.189... 10+4932
(2^14) * log(2) ~ 4932给了我指数部分。但我无法弄清楚尾数。

1 个答案:

答案 0 :(得分:0)

Mantissa有一个隐含的开头。这样可以避免浪费一位存储空间用于始终为1的位(除了减少的浮点数,这是所有指数位为零时的特殊情况)。

请注意,隐含的第一个数字只能以二进制形式存在。例如。在十进制中你可能有3.14e + 2并且你不能只丢弃第一个数字(3),因为你不知道哪个数字(1-9它已经是。

例如,浮点值seeemmmmm将被读作(在C风格的伪代码中)

(s ? -1 : 1) * ((binary)1mmmmm << ((binary)eee - bias));

其中bias是这个特定浮点类型的常量,因此所有指数值(eee)都可以为正,000是最负的指数。

因此,您可以通过指数的最大值(无偏)移动0b111111(比尾数中的位多一位)来计算最大值。最小值与负号相同。