Floating-Point Arithmetic & Number Representation

a normalized floating-point number

Scientific notation has a polite convention: you write 6.022 * 10^23, not 0.6022 * 10^24 or 60.22 * 10^22. There is exactly one nonzero digit before the point, so the representation is unique. Floating-point uses the same rule. A normalized number is one whose significand has its leading digit in the standard position — in binary that means the form 1.fffff * 2^e, with a 1 just before the binary point.

Because in base 2 that leading digit is ALWAYS 1 for a normalized number, the IEEE standard does not bother to store it. This is the 'implicit leading bit' or 'hidden bit': you store only the fraction f after the point, but the hardware acts as if a 1. is glued in front. For free you gain one extra bit of significand precision (53 effective bits in double, while only 52 are stored). Normalization also makes each number's representation unique, which is what lets a simple integer comparison of the bit pattern order floats correctly.

Normalized numbers cover the vast bulk of the representable set and give the format its uniform ~16-digit RELATIVE precision. The catch lives at the bottom of the range: the smallest normalized double is about 2.2 * 10^(-308), and just below it the normalized grid would leave an abrupt gap straight down to zero. To soften that cliff the standard adds SUBNORMAL numbers below the smallest normal — they drop the implicit leading 1 and trade precision for the ability to represent values closer to zero, giving 'gradual underflow'.

The number 6 in double is 1.5 * 2^2 = 1.1 in binary * 2^2, a normalized form: the stored fraction is 1000...0 and the stored (biased) exponent is 2 + 1023 = 1025; the leading 1 is implied, never written. Every normalized double from ~2.2e-308 to ~1.8e308 carries the full 53 bits of precision.

Leading-1 convention buys a free hidden bit of precision.

The hidden bit trick works only because base 2 forces the leading digit to be 1; it would not work in, say, base 10. Numbers too small to normalize become subnormals, which carry FEWER significant bits.

Also called
normal numbernormalized number正規數