雙精度浮點數

雙精度浮點數()是用来表示浮点数的一种資料型別,在计算机中占据64比特(8字节)大小,因此也称为float64FP64。在IEEE 754中这种64位二进制格式被正式称为binary64格式,而在IEEE 754-1985中被称为double,即双精度。

比起單精度浮點數僅有 32 位元(4字节),雙精度浮點數使用 64 位元(8字节) 來儲存一個浮點數。
它可以表示二進位制的53-{位}-有效數字,其可以表示的数字的绝对值范围为[ 2^{-1024} , 2^{1024} ]。

格式

  • -{sign bit}-(符號):1位,用來表示正負號
  • -{exponent}-(指數):11位,用來表示次方數
  • -{mantissa}-(尾數):52位,由于省略了首位必定存在的“1”,实际上为53位,用來表示精確度

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

指數
共有11個位元 , 使用「」,
有2個例外分別為
#「11個位元皆為0」
#「11個位元皆為1」

並且以1023為偏移標準,表示實際指數為0,因此指數範圍為 -1022 到 +1023:

指數 00016 和 7ff16 具有特殊意義:

000000000002 = 00016當尾數為0時為±0,尾數不為0時為非正規形式的浮點數。

111111111112 = 7ff16當尾數為0時為∞,尾數不為0時為NaN。

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

\text{1.mantissa} \times \text{2}^\text{exponent}

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

  • 二進位制的 \text{11.101} \times \text{2}^\text{1001} 可以規格化為 \text{1.1101} \times \text{2}^\text{1010},儲存時尾数只需要儲存1101即可。
  • 二進位制的 \text{0.00110011} \times \text{2}^{-1001} 可以規格化為 \text{1.10011} \times \text{2}^{-1100},儲存時尾數只需要儲存10011即可。

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

(-1)^{\text{sign}} \times 2^{\text{exponent}} \times 1.\text{mantissa}

例子
参考文献
參閱

  • IEEE二进制浮点数算术标准(IEEE 754)
  • 浮点数

评论 (0)

  • 还没有评论,来抢沙发吧。