Normal number (computing)

In computing, a normal number is a non-zero number in a floating-point representation which is within the balanced range supported by a given floating-point format: it is a floating point number that can be represented without leading zeros in its significand.

The magnitude of the smallest normal number in a format is given by:

bEmin

where b is the base (radix) of the format (like common values 2 or 10, for binary and decimal number systems), and Emin depends on the size and layout of the format.

Similarly, the magnitude of the largest normal number in a format is given by

bEmax⋅(b−b1−p)

where p is the precision of the format in digits and Emin is related to Emax as:

Emin≡Δ1−Emax=(−Emax)+1

In the IEEE 754 binary and decimal formats, b, p, Emin, and Emax have the following values:

Smallest and Largest Normal Numbers for common numerical Formats
FormatbpEminEmax Smallest Normal Number Largest Normal Number
binary16211−1415 2−14≡0.00006103515625 215⋅(2−21−11)≡65504
binary32224−126127 2−126≡12126 2127⋅(2−21−24)
binary64253−10221023 2−1022≡121022 21023⋅(2−21−53)
binary1282113−1638216383 2−16382≡1216382 216383⋅(2−21−113)
decimal32107−9596 10−95≡11095 1096⋅(10−101−7)≡9.999999⋅1096
decimal641016−383384 10−383≡110383 10384⋅(10−101−16)
decimal1281034−61436144 10−6143≡1106143 106144⋅(10−101−34)

For example, in the smallest decimal format in the table (decimal32), the range of positive normal numbers is 10−95 through 9.999999 × 1096.

Non-zero numbers smaller in magnitude than the smallest normal number are called subnormal numbers (or denormal numbers).

Zero is considered neither normal nor subnormal.

See also

References

  1. ↑ IEEE Standard for Floating-Point Arithmetic, 2008-08-29, doi:10.1109/IEEESTD.2008.4610935, ISBN 978-0-7381-5752-8