简体   繁体   中英

Smallest subnormal number in IEEE double precision

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(ie, 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)?

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.

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.

2 (2 -(尾数长度) - 2 (指数长度)-1 )

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM