2
$\begingroup$

I read that overflow is more frequent when we work with normalised mantissas. Why is this? Is it because when we adopt a normalised representation, our range is smaller than in a unnormalised representation?

Source: I read this in: Hwang, K. Computer arithmetic. John Wiley & sons, 1979. Chapter 10 "Advanced topics on floating-point arithmetic (page 323)" It says this:

The operands are not required to be normalized, overflow may be expected to occur less frequently in unnormalized arithmetic.

$\endgroup$
  • $\begingroup$ I am not sure but probably because the range in normalised mantissas is lower than in unnomalised mantissas. $\endgroup$ – Joseph Jul 31 '15 at 19:34
1
$\begingroup$

In a nutshell: Normalized binary floating point requires the mantissa to start with digit $1$. When there is an underflow on the exponent, the computation may be saved, at the expense of precision, by allowing the mantissa to start with some leading $0$ in what is called subnormal or denormalized numbers.

It is always a bit chancy to guess the intended meaning of a statement without enough context.

I am not sure either of what you means by

when we adopt a normalised representation, our range is smaller than in a unnormalised representation.

With these disclaimers, here is my understanding.

A first point to note is that the meaning of qualifier normalized depends on context. In scientific notation, wich is close to floating point, it means that the mantissa is represented with a single non-zero digit before the decimal point, for example $2.718\times 10^{24}$.

The definition is different in the IEEE standards for floating points. They specify the number of digits used for the mantissa, with no leading $0$, and with no decimal point (implying it is immediately right of the last digit which can be $0$).

One characteristic of normalized binary representation is that the mantissa (called "significand"or "coefficient" in the IEEE standard). always start with a digit $1$. This gives optimal precision with the mantissa (though the ending $0$'s may not be significant), and can save one bit, since a leading $1$ that is always present does not need to be represented.

However the is a provision for representing subnormal numbers (also called denormal or denormalized) which, as the names indicates, are not normalized.

When there is a need to represent a number such that it requires an exponent smaller than the possible minimum, the normalized computation will cause an underflow exception, which is one of several possible exceptions.

However, this can be recovered, as smaller values (subnormal numbers) can be represented in denormalized format. This requires various tricks as the leading digits of the mantissa can now be $0$ rather than an implicit $1$. Skipping the details, what this amounts to is that underflow can be overcome, to some extent, by using subnormal numbers that have less precision than the normal ones.

Thus if the computation has provision for using subnormal numbers, it is less likely to be aborted by an underflow. But then one should watch for the precision which may not be as good as normally expected.

$\endgroup$
1
$\begingroup$

When you work with normalised mantissas, you should normalised the result of an operation if it is in unnormalised form. This extra step could lead that you cannot represent your number because of an overflow. However if you were working with unnormalised mantissas, the preliminar result you get in the normalised operation is the answer. So you don't need to make the additional step that could make an overflow.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.