IEEE 4 byte real
31 |
30 ... 23 |
22 ... 0 |
s |
8 bits |
msb 23 bit
mantissa lsb |
sign
bit |
biased
exponent (7Fh) |
mantissa |
IEEE 8 byte real
63 |
62 ... 52 |
51 ... 0 |
s |
11 bits |
msb
52 bit
mantissa lsb |
sign
bit |
biased
exponent |
mantissa |
Microsoft 4 byte real
31 ... 24 |
23 |
22 ... 0 |
8 bits |
s |
msb 23 bit
mantissa lsb |
biased
exponent (81h) |
sign
bit |
mantissa |
Microsoft 8 byte real
63 ... 56 |
55 |
54 ... 0 |
s |
8 bits |
msb
55 bit
mantissa lsb |
biased
exponent (401h) |
sign
bit |
mantissa |
IEEE 10 byte real (temporary real)
79 |
78 ... 64 |
63 |
62 ... 0 |
s |
15 bits |
1 |
msb
63 bit
mantissa lsb |
sign
bit |
biased
exponent |
first
mantissa
bit |
mantissa |
Turbo Pascal 6 byte real
47 ... 40 |
39 |
38 ... 0 |
8 bits |
s |
msb
39 bit
mantissa lsb |
biased
exponent (80h) |
sign
bit |
mantissa |
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.
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 |