Unformatted text preview: haps other leading bits) of the significand zero. The numbers in this range are called denormalized (or tiny) numbers. The use of leading zeros with denormalized numbers allows smaller numbers to be represented. However, this denormalization causes a loss of precision (the number of significant bits in the fraction is reduced by the leading zeros). When performing normalized floating-point computations, an IA-32 processor normally operates on normalized numbers and produces normalized numbers as results. Denormalized numbers represent an underflow condition. The exact conditions are specified in Section 126.96.36.199, "Numeric Underflow Exception (#U)." A denormalized number is computed through a technique called gradual underflow. Table 4-6 gives an example of gradual underflow in the denormalization process. Here the single-precision format is being used, so the minimum exponent (unbiased) is -12610. The true result in this example requires an exponent of -12910 in order to have a normalized number. Since -12910 is beyond the allowable exponent range, the result is denormalized by inserting leading zeros until the minimum exponent of -12610 is reached. 4-18 Vol. 1 DATA TYPES Table 4-6. Denormalization Process
Operation True Result Denormalize Denormalize Denormalize Denormal Result Sign 0 0 0 0 0 Exponent* -129 -128 -127 -126 -126 Significand 1.01011100000...00 0.10101110000...00 0.01010111000...00 0.00101011100...00 0.00101011100...00 * Expressed as an unbiased, decimal number. In the extreme case, all the significant bits are shifted out to the right by leading zeros, creating a zero result. The Intel 64 and IA-32 architectures deal with denormal values in the following ways: It avoids creating denormals by normalizing numbers whenever possible. It provides the floating-point underflow exception to permit programmers to detect cases when denormals are created. It provides the floating-point denormal-operand exception to permit procedures or programs to detect when denormals are being used as source operands for computations. 188.8.131.52 Signed Infinities The two infinities, + and - , represent the maximum positive and negative real numbers, respectively, that can be represented in the floating-point format. Infinity is always represented by a significand of 1.00...00 (the integer bit may be implied) and the maximum biased exponent allowed in the specified format (for example, 25510 for the single-precision format). The signs of infinities are observed, and comparisons are possible. Infinities are always interpreted in the affine sense; that is, is less than any finite number and + is greater than any finite number. Arithmetic on infinities is always exact. Exceptions are generated only when the use of an infinity as a source operand constitutes an invalid operation. Whereas denormalized numbers may represent an underflow condition, the two numbers may represent the result of an overflow condition. Here, the normalized result of a computation ha...
View Full Document
- Winter '11
- X86, Intel corporation, 64-bit mode, fpu floating-point exception, FPU Control Instructions