Jump to content

Double-precision floating-point format

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by JakeVortex (talk | contribs) at 23:44, 21 October 2004 (see also). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computing, double precision is a computer numbering format that occupies two storage locations in computer memory at address and address+1. A double precision number, sometimes simply a double, may be defined to be an integer, fixed point, or floating point.

Modern computers with 32-bit stores (single precision) provide 64-bit double precision. Double precision floating point is an IEEE 754 standard for encoding floating point numbers that uses 8 bytes.

Double precision memory format

 Sign bit: 1
 Exponent width: 11  
 Significand precision: 53   

The format is written with an implicit integer bit with value 1 unless the written exponent is all zeros. Thus only 52 bits of the fraction appear in the memory format.

 syyy yyyy yyyy xxxx xxxx … xxxx (52 xs)

Exponent encodings

 Emin  (0x001) = -1022
 Emax (0x7fe) = 1023
 Exponent bias (0x7fe) = 1023

The true exponent = written exponent - exponent bias

 0x000 and 0x7ff  are reserved exponents 
 0x000 is used to represent zero and denormals
 0x7ff is used to represent infinity and NaNs

All bit patterns are valid encodings.

Double precision examples

 3ff0 0000 0000 0000   = 1
 c000 0000 0000 0000   = -2
 7fef ffff ffff ffff   ~ 1.7976931348623 x 10308 (Max Double)
 3fd5 5555 5555 5555   ~ 1/3

(1/3 rounds down instead of up like single precision, because of the odd number of bits in the significand.)

 0000 0000 0000 0000   = 0
 8000 0000 0000 0000   = -0
 7ff0 0000 0000 0000   = Infinity
 fff0 0000 0000 0000   = -Infinity

See also


In baseball, a double is a two-base hit. See double (baseball).

Double is sometimes used to refer to a person who could be a twin or body double.