Definition of Normalized Number

4.4k Views Asked by At

Which is correct? Are they both correct?

Definition 1 A floating point number is said to be normalized if the leading digit of its mantissa is nonzero. for example $(0.10101)_{2}\times 2^{3}$ is normalized, but $(0.010101)_{2}\times 2^{4}$ is not. (َAccording to James W. Demmel; Applied Numerical Linear Algebra; page:9. and many others about numerical analysis/numerical methods)

Definition 2 In base $b$ a normalized number will have the form $$\pm d_{0}.d_{1}d_{2}d_{3}...\times b^{n}$$ where $d_{0}\neq 0$, and the digits $d_{0},d_{1},d_{2},d_{3},...$ are integers between $0$ and $b-1$. (According to Wikipedia and also IEEE Standard for Floating-Point Arithmetic)

We see that in the first definition $d_{0}=0$ but in second $d_{0} \neq 0$?

4

There are 4 best solutions below

2
On

Your first definition is wrong. A binary floating-point number is normalized if it is in the form $1.d_1d_2d_3\ldots\times 2^n$.

2
On

As a professional programmer I can confirm definition #2. This way floating point numbers are normalized by the FPU and I believe this is common to all computer systems.

In the mean time I don't know what definition is used in mathematic world, it can be different.

0
On

Your first definition is the mathematical definition of a normalized number. It predates any IEEE standard and even the IEEE itself.

The second definition was created for practical reasons. A normalized number always begin with $0.1$, so you don't need to store the zero or one on the computer's memory. You just store the digits the come after them. And the point was shifted to the right to make the arithmetics easier when using electronic circuits, particularly for multiplication and division.

In other words, definition #1 is what mathematicians have been using for a really long time, but then engineers realized that definition #2 would make electronic circuits simpler so they adopted it.

0
On

A common use case for your first example is that we are considering numbers less than $2^n$, and the analysis of whatever problem we are studying is simplified if the numbers are as close to the bound as possible. If we're allowed to freely multiply by powers of $2$ to 'normalize' numbers to where they're simplest to analyze, then the normalizations should always be in the interval $[2^{n-1}, 2^n)$.

That is, they should be of the form $2^n \cdot [1/2, 1)$, and thus have the binary representation you describe.