HelpPC 2.10 Quick Reference Utility Copyright 1991 David Jurgens

                            Floating Point Formats

       IEEE 4 byte real

       31 30    23 22                        0
       ┌─┬────────┬──────────────────────────┐
       │s│ 8 bits │msb   23 bit mantissa  lsb│
       └─┴────────┴──────────────────────────┘
        │      │                └────────────────  mantissa
        │      └────────────────────────────────  biased exponent (7fh)
        └─────────────────────────────────────  sign bit

       IEEE 8 byte real

       63 62      52 51                                  0
       ┌─┬──────────┬────────────────────────────────────┐
       │s│  11 bits │msb        52 bit mantissa       lsb│
       └─┴──────────┴────────────────────────────────────┘
        │      │                └────────────────  mantissa
        │      └────────────────────────────────  biased exponent (3FFh)
        └─────────────────────────────────────  sign bit

       Microsoft 4 byte real

       31     24 23 22                       0
       ┌────────┬─┬──────────────────────────┐
       │ 8 bits │s│msb  23 bit mantissa   lsb│
       └────────┴─┴──────────────────────────┘
            │    │              └────────────────  mantissa
            │    └────────────────────────────  sign bit
            └──────────────────────────────  biased exponent (81h)

       Microsoft 8 byte real (see note below)

       63    56 55 54                                 0
       ┌───────┬─┬────────────────────────────────────┐
       │ 8bits │s│msb          52 bit mantissa     lsb│
       └───────┴─┴────────────────────────────────────┘
           │    │                    └────────────  mantissa
           │    └─────────────────────────────  sign bit
           └───────────────────────────  biased exponent (401h, see below)

       IEEE 10 byte real (temporary real)

       79 78       64 63 62                                     0
       ┌─┬───────────┬─┬────────────────────────────────────────┐
       │s│  15 bits  │1│msb          63 bit mantissa         lsb│
       └─┴───────────┴─┴────────────────────────────────────────┘
        │      │      │                    └─────  mantissa
        │      │      └────────────────────────  first mantissa bit
        │      └─────────────────────────────  biased exponent (3FFFh)
        └──────────────────────────────────  sign bit

       Turbo Pascal 6 byte real

       47     40 39 38                                 0
       ┌────────┬─┬────────────────────────────────────┐
       │ 8 bits │s│msb         39 bit mantissa      lsb│
       └────────┴─┴────────────────────────────────────┘
            │    │                  └────────────  mantissa
            │    └─────────────────────────────  sign bit
            └────────────────────────────────  biased exponent (80h)

       Microsoft Fortran Complex number
       ┌──────────────────────────┬─────────────────────────────┐
       │   Float Real component   │  Float Imaginary component  │
       └──────────────────────────┴─────────────────────────────┘
       (each component is either 8 or 16 byte IEEE real)


       - sign bit representation:  0 is positive  and  1 is negative
       - in all float formats except the IEEE 10 byte real, the
         mantissa is stored without most significant bit; since
         the state of this bit is known to be set, it is not
         included and the exponent is adjusted accordingly
       - all formats use binary float representation
       - memory representation uses 80x86 reverse byte/word order.
       - Microsoft languages use the IEEE real formats;  BASIC is the
         only normal user of the Microsoft float format
       - Microsoft 8 byte real format has not been verified;  several
         Microsoft publications show an 8 bit exponent instead of 11 bits
         and state the BIAS is 401h;  the discrepancy is that 8 bits can't
         hold the value 401h (requires 11 bits)


       True exponent is the exponent value minus the following bias:

       81h for Microsoft 4 byte real
       401h for Microsoft 8 byte real
       7Fh for IEEE 4 byte real
       3FFh for IEEE 8 byte real
       80h for Turbo Pascal 6 byte real

            Size                  Range             Significant digits

       4 byte real       8.43x10E-37 to 3.37x10E38         6-7
       8 byte real      4.19x10E-307 to 1.67x10E308       15-16
       10 byte real     3.4x10E-4932 to 1.2x10E4932         19


       - see   dmsbintoieee()   dieeetomsbin()   NUMERIC RANGES

Esc or Alt-X to exit float formats Home/PgUp/PgDn/End ←↑↓→
Converted to HTML in 2006 by Timo Bingmann