打开主菜单

雙精度浮點數

六十四位电脑数字格式

雙精度浮點數(double)是计算机使用的一種資料型別。比起單精度浮點數雙精度浮點數(double)使用 64 位(8字节) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字,其可以表示的数字的绝对值范围大约是

目录

格式编辑

sign bit(符號): 用來表示正負號

exponent(指數): 用來表示次方數

mantissa(尾數): 用來表示精確度

 

符号编辑

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 10308 (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   = 負無限大

参考文献编辑

參閱编辑