Reputation: 401
In IEEE standard for a double precision system, we know that the least exponent for a normal number is 1-1023=-1022, and the representation for 0 is (1.00...0)_2 * 2^(0-1023), where the exponent is -1023.
A subnormal number has exponent -1022 and as opposed to a normal number, the leading mantissa is 0. That is, the representation for a subnormal number looks like: (0.b,...,c)_2 * 2^(-1022), where b,...,c is a series of binary values(i.e., 0 or 1).
I wonder whether the following representation is considered a subnormal number:
(0.00...0)_2 * 2^(-1022), where mantissas are all 0 and the exponent is -1022.
This question is raised because the representation above is equal to 0 mathematically, while a subnormal number is different from 0. In addition, I tried but did not find a formal definition of a "subnormal number". If you know where it is defined rigorously, please let me know. Thanks.
PS: What makes me confused is the term "non-zero" used in the definition of a subnormal number. "zero" means 0 mathematically or IEEEly (the representation for 0 in floating point system)?
Upvotes: 4
Views: 3476
Reputation: 1848
a floating point number with zeroes in the exponent part and zeroes in the mantissa will be a signed 0.
subnormal numbers have a nonzero mantissa.
Upvotes: 1
Reputation: 26175
A subnormal number is defined in IEEE Std 754™-2008, section 2.1.51, as a non-zero floating point number with magnitude less than the magnitude of that formats smallest normal number.
By definition, zero is neither a normal number nor a subnormal number.
Upvotes: 3