32-bit floating point

From NDWiki
Revision as of 04:31, 25 May 2016 by TArntsen (talk | contribs) (Rewritten, extended and improved. References added)
Jump to navigation Jump to search

Norsk Data 32-bit single precision format:

The NORD-10 and the ND-100 could be ordered with either of two different hardware floating point formats, the 32-bit format described on this page, or alternatively with 48-bit floating point hardware.

The ND-500 and ND-5000 used the 32-bit floating point format for single precision. The ND-100 (or -110, -120) front ends in those systems would normally have come with the 32-bit hardware option in order to be compatible with their 500(0) companion.

Field #Bits Purpose
bit 31 1 Sign bit
bit 30-22 9 Exponent
bit 21-0 22 Mantissa
  • The mantissa is normalized: 0.5 ≤ mantissa ≤ 1
  • The mantissa always has an implicit 23th bit of 1, unless the exponent is zero (see below)
  • The decimal point is thus to the left of the implicit 23th bit (before exponent is applied)
  • The exponent has a bias of +256 (subtract 256 to get true exponent)

Special values

  • All bits zero except sign bit: Floating underflow
  • All bits of exponent zero: Zero (sign bit or mantissa values are ignored)

(Strictly speaking the 'exponent zero = zero' is ND-500 only, the ND-100 spec document says floating zero: All 32 bits zero. But any ND-100 introduced after the ND-500 would presumably be compatible, if not before.)

Precision

  • 23 bits or approximately 7 decimal digits

Range

  • (2-256 - 0.5) ≤ X < (2255 - 1) or X = 0

or approximately

  • +/- 8.6*10-78 < X < +/- 5.8*1076

Sources