fbpx
维基百科

雙精度浮點數

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

格式

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

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

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

 

符号

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

指數

共有11個位元 , 使用「偏移表示法英语Exponent bias」, 有2個例外分別為

  1. 「11個位元皆為0」
  2. 「11個位元皆為1」

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

指數 000167ff16 具有特殊意義:

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

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

尾數

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

 

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

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

小結

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

 

例子

0 01111111111 00000000000000000000000000000000000000000000000000002 ≙ 3FF0 0000 0000 000016 ≙ +20 × 1 = 1
0 01111111111 00000000000000000000000000000000000000000000000000012 ≙ 3FF0 0000 0000 000116 ≙ +20 × (1 + 2−52) ≈ 1.0000000000000002, the smallest number > 1
0 01111111111 00000000000000000000000000000000000000000000000000102 ≙ 3FF0 0000 0000 000216 ≙ +20 × (1 + 2−51) ≈ 1.0000000000000004
0 10000000000 00000000000000000000000000000000000000000000000000002 ≙ 4000 0000 0000 000016 ≙ +21 × 1 = 2
1 10000000000 00000000000000000000000000000000000000000000000000002 ≙ C000 0000 0000 000016 ≙ −21 × 1 = −2
0 10000000000 10000000000000000000000000000000000000000000000000002 ≙ 4008 0000 0000 000016 ≙ +21 × 1.12 = 112 = 3
0 10000000001 00000000000000000000000000000000000000000000000000002 ≙ 4010 0000 0000 000016 ≙ +22 × 1 = 1002 = 4
0 10000000001 01000000000000000000000000000000000000000000000000002 ≙ 4014 0000 0000 000016 ≙ +22 × 1.012 = 1012 = 5
0 10000000001 10000000000000000000000000000000000000000000000000002 ≙ 4018 0000 0000 000016 ≙ +22 × 1.12 = 1102 = 6
0 10000000011 01110000000000000000000000000000000000000000000000002 ≙ 4037 0000 0000 000016 ≙ +24 × 1.01112 = 101112 = 23
0 01111111000 10000000000000000000000000000000000000000000000000002 ≙ 3F88 0000 0000 000016 ≙ +2−7 × 1.12 = 0.000000112 = 0.01171875 (3/256)
0 00000000000 00000000000000000000000000000000000000000000000000012 ≙ 0000 0000 0000 000116 ≙ +2−1022 × 2−52 = 2−1074
≈ 4.9406564584124654 × 10−324 (Min. subnormal positive double)
0 00000000000 11111111111111111111111111111111111111111111111111112 ≙ 000F FFFF FFFF FFFF16 ≙ +2−1022 × (1 − 2−52)
≈ 2.2250738585072009 × 10−308 (Max. subnormal double)
0 00000000001 00000000000000000000000000000000000000000000000000002 ≙ 0010 0000 0000 000016 ≙ +2−1022 × 1
≈ 2.2250738585072014 × 10−308 (Min. normal positive double)
0 11111111110 11111111111111111111111111111111111111111111111111112 ≙ 7FEF FFFF FFFF FFFF16 ≙ +21023 × (1 + (1 − 2−52))
≈ 1.7976931348623157 × 10308 (Max. Double)
0 00000000000 00000000000000000000000000000000000000000000000000002 ≙ 0000 0000 0000 000016 ≙ +0
1 00000000000 00000000000000000000000000000000000000000000000000002 ≙ 8000 0000 0000 000016 ≙ −0
0 11111111111 00000000000000000000000000000000000000000000000000002 ≙ 7FF0 0000 0000 000016 ≙ +∞ (positive infinity)
1 11111111111 00000000000000000000000000000000000000000000000000002 ≙ FFF0 0000 0000 000016 ≙ −∞ (negative infinity)
0 11111111111 00000000000000000000000000000000000000000000000000012 ≙ 7FF0 0000 0000 000116 ≙ NaN (sNaN on most processors, such as x86 and ARM)
0 11111111111 10000000000000000000000000000000000000000000000000012 ≙ 7FF8 0000 0000 000116 ≙ NaN (qNaN on most processors, such as x86 and ARM)
0 11111111111 11111111111111111111111111111111111111111111111111112 ≙ 7FFF FFFF FFFF FFFF16 ≙ NaN (an alternative encoding of NaN)
0 01111111101 01010101010101010101010101010101010101010101010101012
= 3fd5 5555 5555 555516 ≙ +2−2 × (1 + 2−2 + 2−4 + ... + 2−52)
1/3
0 10000000000 10010010000111111011010101000100010000101101000110002
= 4009 21fb 5444 2d1816 ≈ pi

参考文献

參閱

雙精度浮點數, 此條目需要擴充, 2007年9月26日, 请協助改善这篇條目, 更進一步的信息可能會在討論頁或扩充请求中找到, 请在擴充條目後將此模板移除, double, 是计算机使用的一種資料型別, 比起單精度浮點數, 使用, 8字节, 來儲存一個浮點數, 它可以表示二進位制的53位有效數字, 其可以表示的数字的绝对值范围为, 1024, 1024, displaystyle, 1024, 1024, 目录, 格式, 符号, 指數, 尾數, 小結, 例子, 参考文献, 參閱格式, 编辑sign, 符號, 用來表. 此條目需要擴充 2007年9月26日 请協助改善这篇條目 更進一步的信息可能會在討論頁或扩充请求中找到 请在擴充條目後將此模板移除 雙精度浮點數 double 是计算机使用的一種資料型別 比起單精度浮點數 雙精度浮點數使用 64 位 8字节 來儲存一個浮點數 它可以表示二進位制的53位有效數字 其可以表示的数字的绝对值范围为 2 1024 2 1024 displaystyle 2 1024 2 1024 目录 1 格式 1 1 符号 1 2 指數 1 3 尾數 1 4 小結 2 例子 3 参考文献 4 參閱格式 编辑sign bit 符號 用來表示正負號exponent 指數 用來表示次方數mantissa 尾數 用來表示精確度 dd 符号 编辑 0代表數值為正 1代表數值為負 指數 编辑 共有11個位元 使用 偏移表示法 英语 Exponent bias 有2個例外分別為 11個位元皆為0 11個位元皆為1 並且以1023為偏移標準 表示實際指數為0 因此指數範圍為 1022 到 1023 指數 000 sub 16 sub 和 7ff sub 16 sub 具有特殊意義 00000000000 sub 2 sub 000 sub 16 sub 當尾數為0時為 0 尾數不為0時為非正規形式的浮點數 11111111111 sub 2 sub 7ff sub 16 sub 當尾數為0時為 尾數不為0時為NaN 尾數 编辑 在二進位的 科學記號 數字被表示為 1 mantissa 2 exponent displaystyle text 1 mantissa times text 2 text exponent 二進位的 科學記號 a 2n 的a的範圍是大於等於1而小於2 例如 二進位制的 11 101 2 1001 displaystyle text 11 101 times text 2 text 1001 可以規格化為 1 1101 2 1010 displaystyle text 1 1101 times text 2 text 1010 儲存時尾数只需要儲存1101即可 二進位制的 0 00110011 2 1001 displaystyle text 0 00110011 times text 2 1001 可以規格化為 1 10011 2 1100 displaystyle text 1 10011 times text 2 1100 儲存時尾數只需要儲存10011即可 小結 编辑 根據以上的敘述 一個雙精度浮點數所代表的數值為 1 sign 2 exponent 1 mantissa displaystyle 1 text sign times 2 text exponent times 1 text mantissa 例子 编辑0 01111111111 0000000000000000000000000000000000000000000000000000 sub 2 sub 3FF0 0000 0000 000016 20 1 10 01111111111 0000000000000000000000000000000000000000000000000001 sub 2 sub 3FF0 0000 0000 000116 20 1 2 52 1 0000000000000002 the smallest number gt 10 01111111111 0000000000000000000000000000000000000000000000000010 sub 2 sub 3FF0 0000 0000 000216 20 1 2 51 1 00000000000000040 10000000000 0000000000000000000000000000000000000000000000000000 sub 2 sub 4000 0000 0000 000016 21 1 21 10000000000 0000000000000000000000000000000000000000000000000000 sub 2 sub C000 0000 0000 000016 21 1 20 10000000000 1000000000000000000000000000000000000000000000000000 sub 2 sub 4008 0000 0000 000016 21 1 12 112 30 10000000001 0000000000000000000000000000000000000000000000000000 sub 2 sub 4010 0000 0000 000016 22 1 1002 40 10000000001 0100000000000000000000000000000000000000000000000000 sub 2 sub 4014 0000 0000 000016 22 1 012 1012 50 10000000001 1000000000000000000000000000000000000000000000000000 sub 2 sub 4018 0000 0000 000016 22 1 12 1102 60 10000000011 0111000000000000000000000000000000000000000000000000 sub 2 sub 4037 0000 0000 000016 24 1 01112 101112 230 01111111000 1000000000000000000000000000000000000000000000000000 sub 2 sub 3F88 0000 0000 000016 2 7 1 12 0 000000112 0 01171875 3 256 0 00000000000 0000000000000000000000000000000000000000000000000001 sub 2 sub 0000 0000 0000 000116 2 1022 2 52 2 1074 4 9406564584124654 10 324 Min subnormal positive double 0 00000000000 1111111111111111111111111111111111111111111111111111 sub 2 sub 000F FFFF FFFF FFFF16 2 1022 1 2 52 2 2250738585072009 10 308 Max subnormal double 0 00000000001 0000000000000000000000000000000000000000000000000000 sub 2 sub 0010 0000 0000 000016 2 1022 1 2 2250738585072014 10 308 Min normal positive double 0 11111111110 1111111111111111111111111111111111111111111111111111 sub 2 sub 7FEF FFFF FFFF FFFF16 21023 1 1 2 52 1 7976931348623157 10308 Max Double 0 00000000000 0000000000000000000000000000000000000000000000000000 sub 2 sub 0000 0000 0000 000016 01 00000000000 0000000000000000000000000000000000000000000000000000 sub 2 sub 8000 0000 0000 000016 00 11111111111 0000000000000000000000000000000000000000000000000000 sub 2 sub 7FF0 0000 0000 000016 positive infinity 1 11111111111 0000000000000000000000000000000000000000000000000000 sub 2 sub FFF0 0000 0000 000016 negative infinity 0 11111111111 0000000000000000000000000000000000000000000000000001 sub 2 sub 7FF0 0000 0000 000116 NaN sNaN on most processors such as x86 and ARM 0 11111111111 1000000000000000000000000000000000000000000000000001 sub 2 sub 7FF8 0000 0000 000116 NaN qNaN on most processors such as x86 and ARM 0 11111111111 1111111111111111111111111111111111111111111111111111 sub 2 sub 7FFF FFFF FFFF FFFF16 NaN an alternative encoding of NaN 0 01111111101 0101010101010101010101010101010101010101010101010101 sub 2 sub 3fd5 5555 5555 5555 sub 16 sub 2 2 1 2 2 2 4 2 52 1 30 10000000000 1001001000011111101101010100010001000010110100011000 sub 2 sub 4009 21fb 5444 2d18 sub 16 sub pi参考文献 编辑參閱 编辑IEEE二进制浮点数算术标准 IEEE 754 浮点数 取自 https zh wikipedia org w index php title 雙精度浮點數 amp oldid 75375124, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。