retagged by
11,298 views
39 votes
39 votes

The decimal value $0.5$ in IEEE single precision floating point representation has

  1. fraction bits of $000\dots 000$ and exponent value of $0$
  2. fraction bits of $000\dots 000$ and exponent value of $−1$
  3. fraction bits of $100\dots 000$ and exponent value of $0$
  4. no exact representation
retagged by

2 Answers

Best answer
41 votes
41 votes

(B) is the answer. $\text{IEEE 754}$ representation uses normalized representation except when all the exponent bits are zeroes (these are used for representing denormalized numbers and $\pm0$) or when all the exponent bits are $1’s$ (these are for representing $\pm \infty$ and NaNs).  So, here an implicit '1' is used before the decimal point. So, if mantissa is:

$0000 \dots 0$

It would be treated as:

$1.000 \ldots 0$

and hence, the exponent need to be $-1$ for us to get $0.1$ which is the binary representation of $0.5.$

More into IEEE floating point representation:
http://steve.hollasch.net/cgindex/coding/ieeefloat.html

edited by
24 votes
24 votes

In IEEE biasing of exponent is must.

Step 1: decimal 0.5 --> binary 0.1

Step 2: normalize binary 0.1 --> 1.0 * 2-1

Step 3: exponent -1 + 127 = 126 = binary 01111110

Step 4: remove hidden digit from 1.0 --> 0 (1 is implicit in IEEE representation)

Step 5: 0.5 is positive - the sign bit is zero: 0

The next eight bits are the exponent: 01111110

The next 23 bits are the mantissa: 000000000000000000000

Binary result (32 bits): 10111111000000000000000000000000

I think there is something wrong with the question. Arjun Sir, please explain.

edited by
Answer:

Related questions

29 votes
29 votes
1 answer
1
20 votes
20 votes
3 answers
4