Format of Four-Byte Floating Point Data

IBM C and C++ Compilers conforms to IEEE format, in which a floating point number is represented in terms of sign (S), exponent (E), and fraction (F):

(-1)S x 2E x 1.F

Type float
Alignment 4-byte-aligned
Bit Mapping In the internal representation, there is 1 bit for the sign (S), 8 bits for the exponent (E), and 23 bits for the fraction (F). The bits are mapped with the fraction in bit 0 to bit 22, the exponent in bit 23 to bit 30, and the sign in bit 31:
3 32222222 22211111111110000000000
1 09876543 21098765432109876543210
S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF

Read the lines vertically from top to bottom. For example, the third column of numbers shows that bit 29 is part of the exponent.

Storage Mapping In the following mapping, high memory is to the right.
byte 0 byte 1 byte 2 byte 3
76543210 
 111111
54321098 
22221111
32109876
33222222
10987654 
FFFFFFFF 
FFFFFFFF 
EFFFFFFF 
SEEEEEEE



Data Mapping


Mapping of Fundamental Data Types
Mapping of Compound Data Types
Format of Eight-Byte Floating Point Data
Format of Ten-Byte Floating Point Data in Sixteen Byte Fields