双精度浮点数

双精度浮点数

目录导航

格式

sign bit(符号): 用来表示正负号

exponent(指数): 用来表示次方数

mantissa(尾数): 用来表示精确度

General double precision float.pngGeneral double precision float.png

符号

0代表数值为正,1代表数值为负。

指数

类比整型使用所有位为 0 的数字表示数值“0”,双精度浮点数表示 0 时指数部分也为 0。若如此,便可能产生冲突:比如全 0 的数字可能表示“0”,也可能表示 (参考下文“尾数”的解释)。于是此处规定:

:用来代表带符号的 0(尾数为 0)或下溢数(尾数不为 0)。

:用来代表无穷大(尾数为 0)或NaN(尾数不为 0)。

其他:代表 2 的(exponent-0x3ff)次方。

尾数

在二进制的“科学记号”,数字被表示为:

为了最大限度提高精确度,可以要求尾数规格化,把尾数处理到大于等于1而小于2的区间内,便可省去前述的“1”。例如:

二進位制的 可以規格化為 ,存儲存尾数只需要儲存1101即可 二進位制的 可以規格化為 ,儲存時尾數只需要儲存10011即可

于是,可得以下形式:

小结

根据以上的叙述,一个双精度浮点数所代表的数值为:

例子

3ff0 0000 0000 0000 = 1 c000 0000 0000 0000 = -2 7fef ffff ffff ffff ~ 1.7976931348623157 x 10 308 (Max Double) 3fd5 5555 5555 5555 ~ 1/3 0000 0000 0000 0000 = 0 8000 0000 0000 0000 = -0 7ff0 0000 0000 0000 = 無限大 fff0 0000 0000 0000 = 負無限大

相关百科
返回顶部
产品求购 求购