Why is FLT
The IEEE 754 standard defines the minimum and maximum values that can be represented in the exponent field, using the biased representation. For binary32, emax is defined as 127 and emin is defined to be 1-emax for all binary representations, that is, -126.
The C standard (I'm using the C99 revision here), however, defines FLT_MIN_EXP
as:
minimum negative integer such that FLT_RADIX
raised to one less than that power is a normalized floating-point number, e_min.
The important words here are "one less than". So if float
is a binary32, this means that FLT_MIN_EXP
is -125.
Why is it defined this way? Or, to put it another way, why is FLT_MIN_EXP
not the minimum exponent of a normal number?
下一篇: 为什么是FLT