IEEE 754

The IEEE 754 standard concerns the floating point system to be used with computers. The standard has a 32-bit floating point format (±1.18×10−38 to ±3.4×1038) as well as a 64-bit format (±2.23×10−308 to ±1.80×10308).

Intel has been working on floating point hardware since at least the late 1970s. The standard defines:

  • arithmetic formats: sets of binary and decimal floating-point data, which consist of finite numbers (including signed zeros and subnormal numbers), infinities, and special “not a number” values (NaNs)
  • interchange formats: encodings (bit strings) that may be used to exchange floating-point data in an efficient and compact form
  • rounding rules: properties to be satisfied when rounding numbers during arithmetic and conversions
  • operations: arithmetic and other operations (such as trigonometric functions) on arithmetic formats
  • exception handling: indications of exceptional conditions (such as division by zero, overflow, etc.)

Some parts of the standard are dictated by the realities of semiconductor manufacturing. Standard exceptions are provided for.

The Intel 8087 was the first floating point device for the IBM PC in 1995 to provide faster performance. The 8087 is based on the working draft of the standard.

A floating-point format is specified by:

  • a base (also called radix) b, which is either 2 (binary) or 10 (decimal) in IEEE 754;
  • a precision p;
  • an exponent range from emin to emax, with emin = 1 − emax for all IEEE 754 formats.

The limitations of the containers do have some idiosyncrasies which in most cases are not relevant.