雙精度浮點數
维基百科,自由的百科全书
(重定向自雙倍精確浮點數)
| 本条目需要擴充。(2007年9月26日) |
| 浮點數精度 |
|---|
| IEEE 754 |
|
| 其他 |
雙精度浮點數(double)是计算机使用的一種資料型別。比起單精度浮點數,雙精度浮點數(double)使用 64 位(8字节) 來儲存一個浮點數。 它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是
。
格式[编辑]
sign bit(符號): 用來表示正負號
exponent(指數): 用來表示次方數
mantissa(尾數): 用來表示精確度
符号[编辑]
0代表數值為正,1代表數值為負。
指数[编辑]
类比整型使用所有位为0的数字表示数值“0”,双精度浮点数表示0时指数部分也为0。若如此,便可能产生冲突:比如全0的数字可能表示“0”,也可能表示
(参考下文“尾数”的解释)。于是此处规定,指数使用0x3ff(十进制1023)的偏移量,便有以下规则:
- 0x000:用來代表0(mantissa=0)或下溢数(mantissa不為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 = 負無限大
参考文献[编辑]
參閱[编辑]
|
||||||||||||||||||||||

可以规格化为
,存储时尾数只需要存储1101即可
可以规格化为
,存储时尾数只需要存储10011即可