background image

Vol. 1 4-13

DATA TYPES

4.8.2.1  

Normalized Numbers

In most cases, floating-point numbers are encoded in normalized form. This means that except for zero, the signif-
icand is always made up of an integer of 1 and the following fraction:

1.fff...ff

For values less than 1, leading zeros are eliminated. (For each leading zero eliminated, the exponent is decre-
mented by one.)
Representing numbers in normalized form maximizes the number of significant digits that can be accommodated 
in a significand of a given width. To summarize, a normalized real number consists of a normalized significand that 
represents a real number between 1 and 2 and an exponent that specifies the number’s binary point.

4.8.2.2  

Biased Exponent

In the IA-32 architecture, the exponents of floating-point numbers are encoded in a biased form. This means that 
a constant is added to the actual exponent so that the biased exponent is always a positive number. The value of 
the biasing constant depends on the number of bits available for representing exponents in the floating-point 
format being used. The biasing constant is chosen so that the smallest normalized number can be reciprocated 
without overflow.
See Section 4.2.2, “Floating-Point Data Types,” for a list of the biasing constants that the IA-32 architecture uses 
for the various sizes of floating-point data-types.

4.8.3 

Real Number and Non-number Encodings

A variety of real numbers and special values can be encoded in the IEEE Standard 754 floating-point format. These 
numbers and values are generally divided into the following classes:

Signed zeros

Denormalized finite numbers

Normalized finite numbers

Signed infinities

NaNs

Indefinite numbers

(The term NaN stands for “Not a Number.”)
Figure 4-12 shows how the encodings for these numbers and non-numbers fit into the real number continuum. The 
encodings shown here are for the IEEE single-precision floating-point format. The term “S” indicates the sign bit, 
“E” the biased exponent, and “Sig” the significand. The exponent values are given in decimal. The integer bit is 
shown for the significands, even though the integer bit is implied in single-precision floating-point format.