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:

b E min {\displaystyle b^{E_{\text{min}}}}

where b is the base (radix) of the format (like common values 2 or 10, for binary and decimal number systems), and E min {\textstyle E_{\text{min}}} depends on the size and layout of the format.

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

b E max ⋅ ( b − b 1 − p ) {\displaystyle b^{E_{\text{max}}}\cdot \left(b-b^{1-p}\right)}

where p is the precision of the format in digits and E min {\textstyle E_{\text{min}}} is related to E max {\textstyle E_{\text{max}}} as:

E min ≡ Δ 1 − E max = ( − E max ) + 1 {\displaystyle E_{\text{min}}\,{\overset {\Delta }{\equiv }}\,1-E_{\text{max}}=\left(-E_{\text{max}}\right)+1}

In the IEEE 754 binary and decimal formats, b, p, E min {\textstyle E_{\text{min}}}, and E max {\textstyle E_{\text{max}}} have the following values:

Smallest and Largest Normal Numbers for common numerical Formats
Formatb {\displaystyle b}p {\displaystyle p}E min {\displaystyle E_{\text{min}}}E max {\displaystyle E_{\text{max}}}Smallest Normal NumberLargest Normal Number
binary16211−14152 − 14 ≡ 0.00006103515625 {\displaystyle 2^{-14}\equiv 0.00006103515625}2 15 ⋅ ( 2 − 2 1 − 11 ) ≡ 65504 {\displaystyle 2^{15}\cdot \left(2-2^{1-11}\right)\equiv 65504}
binary32224−1261272 − 126 ≡ 1 2 126 {\displaystyle 2^{-126}\equiv {\frac {1}{2^{126}}}}2 127 ⋅ ( 2 − 2 1 − 24 ) {\displaystyle 2^{127}\cdot \left(2-2^{1-24}\right)}
binary64253−102210232 − 1022 ≡ 1 2 1022 {\displaystyle 2^{-1022}\equiv {\frac {1}{2^{1022}}}}2 1023 ⋅ ( 2 − 2 1 − 53 ) {\displaystyle 2^{1023}\cdot \left(2-2^{1-53}\right)}
binary1282113−16382163832 − 16382 ≡ 1 2 16382 {\displaystyle 2^{-16382}\equiv {\frac {1}{2^{16382}}}}2 16383 ⋅ ( 2 − 2 1 − 113 ) {\displaystyle 2^{16383}\cdot \left(2-2^{1-113}\right)}
decimal32107−959610 − 95 ≡ 1 10 95 {\displaystyle 10^{-95}\equiv {\frac {1}{10^{95}}}}10 96 ⋅ ( 10 − 10 1 − 7 ) ≡ 9.999999 ⋅ 10 96 {\displaystyle 10^{96}\cdot \left(10-10^{1-7}\right)\equiv 9.999999\cdot 10^{96}}
decimal641016−38338410 − 383 ≡ 1 10 383 {\displaystyle 10^{-383}\equiv {\frac {1}{10^{383}}}}10 384 ⋅ ( 10 − 10 1 − 16 ) {\displaystyle 10^{384}\cdot \left(10-10^{1-16}\right)}
decimal1281034−6143614410 − 6143 ≡ 1 10 6143 {\displaystyle 10^{-6143}\equiv {\frac {1}{10^{6143}}}}10 6144 ⋅ ( 10 − 10 1 − 34 ) {\displaystyle 10^{6144}\cdot \left(10-10^{1-34}\right)}

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