Normal number (computing)
Find sources: "Normal number" computing – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this message)
| Floating-point formats |
|---|
| IEEE 754 |
|
| Other |
| Alternatives |
| Tapered floating point |
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:
{\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 {\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
- {\displaystyle b^{E_{\text{max}}}\cdot \left(b-b^{1-p}\right)}
where p is the precision of the format in digits and {\textstyle E_{\text{min}}} is related to {\textstyle E_{\text{max}}} as:
{\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, {\textstyle E_{\text{min}}}, and {\textstyle E_{\text{max}}} have the following values:[1]
| Format | {\displaystyle b} | {\displaystyle p} | {\displaystyle E_{\text{min}}} | {\displaystyle E_{\text{max}}} | Smallest Normal Number | Largest Normal Number |
|---|---|---|---|---|---|---|
| binary16 | 2 | 11 | −14 | 15 | {\displaystyle 2^{-14}\equiv 0.00006103515625} | {\displaystyle 2^{15}\cdot \left(2-2^{1-11}\right)\equiv 65504} |
| binary32 | 2 | 24 | −126 | 127 | {\displaystyle 2^{-126}\equiv {\frac {1}{2^{126}}}} | {\displaystyle 2^{127}\cdot \left(2-2^{1-24}\right)} |
| binary64 | 2 | 53 | −1022 | 1023 | {\displaystyle 2^{-1022}\equiv {\frac {1}{2^{1022}}}} | {\displaystyle 2^{1023}\cdot \left(2-2^{1-53}\right)} |
| binary128 | 2 | 113 | −16382 | 16383 | {\displaystyle 2^{-16382}\equiv {\frac {1}{2^{16382}}}} | {\displaystyle 2^{16383}\cdot \left(2-2^{1-113}\right)} |
| decimal32 | 10 | 7 | −95 | 96 | {\displaystyle 10^{-95}\equiv {\frac {1}{10^{95}}}} | {\displaystyle 10^{96}\cdot \left(10-10^{1-7}\right)\equiv 9.999999\cdot 10^{96}} |
| decimal64 | 10 | 16 | −383 | 384 | {\displaystyle 10^{-383}\equiv {\frac {1}{10^{383}}}} | {\displaystyle 10^{384}\cdot \left(10-10^{1-16}\right)} |
| decimal128 | 10 | 34 | −6143 | 6144 | {\displaystyle 10^{-6143}\equiv {\frac {1}{10^{6143}}}} | {\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
[edit ]- Normalized number
- Half-precision floating-point format
- Single-precision floating-point format
- Double-precision floating-point format
References
[edit ]- ^ IEEE Standard for Floating-Point Arithmetic, 2008年08月29日, doi:10.1109/IEEESTD.2008.4610935, ISBN 978-0-7381-5752-8