background image

Vol. 1 4-11

DATA TYPES

The packed BCD integer indefinite encoding (FFFFC000000000000000H) is stored by the FBSTP instruction in 
response to a masked floating-point invalid-operation exception. Attempting to load this value with the FBLD 
instruction produces an undefined result.

4.8 

REAL NUMBERS AND FLOATING-POINT FORMATS

This section describes how real numbers are represented in floating-point format in x87 FPU and 
SSE/SSE2/SSE3/SSE4.1 and Intel AVX floating-point instructions. It also introduces terms such as normalized 
numbers, denormalized numbers, biased exponents, signed zeros, and NaNs. Readers who are already familiar 
with floating-point processing techniques and the IEEE Standard 754 for Binary Floating-Point Arithmetic may wish 
to skip this section.

4.8.1 

Real Number System

As shown in Figure 4-10, the real-number system comprises the continuum of real numbers from minus infinity (−

∞) to plus infinity (+ ∞).

Because the size and number of registers that any computer can have is limited, only a subset of the real-number 
continuum can be used in real-number (floating-point) calculations. As shown at the bottom of Figure 4-10, the 
subset of real numbers that the IA-32 architecture supports represents an approximation of the real number 
system. The range and precision of this real-number subset is determined by the IEEE Standard 754 floating-point 
formats. 

4.8.2 Floating-Point 

Format

To increase the speed and efficiency of real-number computations, computers and microprocessors typically repre-
sent real numbers in a binary floating-point format. In this format, a real number has three parts: a sign, a signif-
icand, and an exponent (see Figure 4-11).
The sign is a binary value that indicates whether the number is positive (0) or negative (1). The significand has 
two parts: a 1-bit binary integer (also referred to as the J-bit) and a binary fraction. The integer-bit is often not 
represented, but instead is an implied value. The exponent is a binary integer that represents the base-2 power by 
which the significand is multiplied.
Table 4-5 shows how the real number 178.125 (in ordinary decimal format) is stored in IEEE Standard 754 floating-
point format. The table lists a progression of real number notations that leads to the single-precision, 32-bit 
floating-point format. In this format, the significand is normalized (see Section 4.8.2.1, “Normalized Numbers”) 
and the exponent is biased (see Section 4.8.2.2, “Biased Exponent”). For the single-precision floating-point 
format, the biasing constant is +127.

Packed BCD 

Integer 

Indefinite

1

1111111

1111

1111

1100

0000

...

0000

 1 byte 

 9 bytes 

Table 4-4.  Packed Decimal Integer Encodings (Contd.)