Floating point types

Floating point data types use a binary floating point representation. Each floating point type has three fields:

significand | stores the significant digits of the number. The significand itself represents a number between 1 and 2, with a number of fractional bits, depending on the type. |

exponent | stores the power of two, by which the significand is multiplied. The exponent is biased: that is, a number is added to the exponent so that both positive and negative exponents are represented by positive numbers. |

sign | is a single bit representing the sign of the number: zero for positive and 1 for negative. |

**REAL - Modula-2
Float, Short_Float - Ada95**

These type values occupy four bytes and are in the IEEE 32-bit real format used by the floating point processor:

- Bits 0-23 are the significand. The highest bit of the actual significand is always one and is not stored.
- Bits 24-30 are the exponent, biased by 127.
- Bit 31 is the sign.

**LONGREAL - Modula-2
Long_Float - Ada95**

These type values occupy eight bytes and are in the IEEE 64-bit real format used by the floating point processor:

- Bits 0-51 are the significand. The highest bit of the actual significand is always one and is not stored.
- Bits 52-62 are the exponent, biased by 1023.
- Bit 63 is the sign.