3
$\begingroup$

I am a student and I came to this question while solving problems regarding the float-points.

a 16 bit floating point number format is given as;
1 bit for sign
9 bits for mantissa
6 bits for exponent.

mantissa is normalized fraction denoted in sign magnitude form and exponent is in 2's complement form.
base of the system is 2 and and biasing is (2^e-1) - 1. What is the range of positive mantissa?

and the ans is

0.5 to 1 - 2^-9

the max value of mantissa will be .111111111 ie. 1 - 2^-9. but I am not getting the min value of mantissa. It is given that .100000000 is the min positive mantissa..

my question is why it is not .000000001?

$\endgroup$
  • $\begingroup$ mantissa is normalized fraction and denoted in sign magnitude format,in case of sign magnitude notation leading bit is dedicated for SIGN of mantissa ..why cant we used it here ??? $\endgroup$ – user7181 Jan 27 '14 at 5:33
3
$\begingroup$

You haven't told us the original source of this question, or precisely quoted it, so it's possible that something critical is missing from the statement of the problem. It's also quite possible that the solution is just wrong.

However, a likely explanation of your confusion is in the idea of normalized binary floating point numbers with an implicit leading one bit. This scheme is used most prominently in IEEE-754 floating point.

The idea is that although we will only store 9 bits of the mantissa in memory, we will always normalize the exponent so that the first bit of the mantissa is a 1. We will implicitly assume (without explicitly storing this bit) that the first bit of the mantissa is 1. This gives us an extra bit in the mantissa at no cost in storage. The 10 bit mantissas then range from

.1000000000 (stored in memory as 000000000)

to

.1111111111 (stored in memory as 111111111)

In this scheme, a number with the smallest possible exponent is considered denormalized (or subnormal) so that the implicit leading one bit is not assumed. This allows for mantissas all the way down to

.000000001 (note that there are only 9 bits here!)

This extends the range of the floating point numbers, but at the cost of precision at the low end. On many processors, arithmetic on denormalized numbers can be substantially slower than arithmetic on normalized IEEE floating point numbers. In some cases (this is common on GPU's) the processor will simply round all denormalized results down to 0 rather than doing the extra processing to properly handle them.

| cite | improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Rereading your question, I think the key phrase is "mantissa is normalized fraction." Whether or not you use the trick of not storing the implicit leading one in memory, if you limit yourself to normalized mantissas, then .100000000 is as small as you can get in a normalized mantissa. $\endgroup$ – Brian Borchers Sep 3 '13 at 1:37
  • $\begingroup$ I guess I am confused with the concept of normalized float point numbers. It is given that if 0 < exponent < 2^e-1, MSB of significant is 1 then the number is said to normalized. Does that mean MSB of significant of normalized float point number must be 1? Or, does it mean 000000001 is not a normalized mantissa? $\endgroup$ – Karthik Sep 3 '13 at 5:08
  • $\begingroup$ "Normalized" means that the leading digit of the mantissa is nonzero (1 in the binary case) and that the exponent has been adjusted to make this possible. e.g. $.001$ is normalized as $.1 \times 2^{-2}$. This means that .000000001 is not normalized. $\endgroup$ – Brian Borchers Sep 3 '13 at 12:57
  • $\begingroup$ Although your explanation clears some doubt @Brian but i'm still confused with respect to the standard scientific notation, viz. (-1)^s (1 + M*2^-m)*2^(e-bias). As per that, the 'normalized' mantissa should be represented as: min: 1+ [0]*2^-9 <here another doubt: it says mantissa is in signed magnitude. Should that mean that we use the MSB for representing it's sign? But we already have the whole representation's first bit for the sign.. > max: 1+ [511]*2^-9 But then the max means 2-2^-9 and not 1-2^-9. $\endgroup$ – Vaibhav Jan 23 '15 at 8:35
  • $\begingroup$ Ok.. I get it. You have actually shifted the radix one more to the left to include the implicit 1.xx.. into the mantissa. So the max is now 0 + [511]*2^-10 Got it! $\endgroup$ – Vaibhav Jan 23 '15 at 8:44

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.