雙精度浮點數

六十四位电脑数字格式

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

格式编辑

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

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

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

 

符号编辑

0代表數值為正,1代表數值為負。

指数编辑

使用二補數表示法,範圍為-1024(0x400)到+1023(0x3ff),但有四個例外:

  • 指數為+1023(0x3ff),尾數的每個位數都是1,符號為0,表示正無窮大
  • 指數為+1023(0x3ff),尾數的每個位數都是1,符號為1,表示負無窮大
  • 指數為-1024(0x400),尾數的每個位數都是0,符號為0,表示0
  • 指數為-1024(0x400),尾數的每個位數都是0,符號為1,表示NaN

尾數编辑

二進位的「科學記號」,數字被表示為:

 

二進位的「科學記號」(a×2n)的a的範圍是大於等於1而小於2,例如:

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

小結编辑

根據以上的敘述,一個雙精度浮點數所代表的數值為:

 

例子编辑

 0000 0000 0000 0000   = 1
 8010 0000 0000 0000   = -2
 0051 3200 0000 0000   = 47
 8081 1110 0000 0000   = −341
 3fff ffff ffff fffe   ~ 21024 (Max Double)
 4000 0000 0000 0001   ~ 2−1024 (Min double)
 7ff0 0000 0000 0000   = 1/2
 7fe5 5555 5555 5555   ~ 1/3
 4000 0000 0000 0000   = 0
 c000 0000 0000 0000   = NaN
 3fff ffff ffff ffff   = 無限大
 bfff ffff ffff ffff   = 負無限大

参考文献编辑

參閱编辑