Data Representation: Normalisation of floating point numbers

Normalisation is about creating a unique floating point number to represent the number as accurately as possible in the number of bits available.

Normalising positive floating point numbers

A normalised positive floating point number will always have a mantissa that starts 01.

If there are additional zeros after the first then the number should be shifted left until it starts 01. For each column you shift the bits left, you must decrement the exponent by 1

   -1     .5     .25   .125 .0625   -4    2     1   Value
0 0 0 1 1 1 1 1 .1875 x 2-1 = 0.09375
0 0 1 1 0 1 1 0 .375 x 2-2 = 0.09375
0 1 1 0 0 1 0 1 .75 x 2-3 = 0.09375

As you can see in this example, the number being represented is the same throughout, but only the final number that starts 01 is normalised.

Normalising negative floating point numbers

A normalised negative floating point number will always have a mantissa that starts 10.

If there are additional ones after the first then the number should be shifted left until it starts 10. Ones that are shifted out are discarded. For each column you shift the bits left, you must decrement the exponent by 1

   -1     .5     .25   .125 .0625   -4    2     1   Value
1 1 1 1 0 0 1 0 -.125 x 22 = -0.5
1 1 1 0 0 0 0 1 -.25 x 21 = -0.5
1 1 0 0 0 0 0 0 -.5 x 20 = -0.5
1 0 0 0 0 1 1 1 -1 x 2-1 = -0.5

Normalisation practise

Enter the 8-bit number that would be the normalised version of the number shown.

   -1     .5     .25   .125 .0625   -4    2     1   Answer
1 1 0 1 1 0 1 1

?

0 0 1 0 1 1 1 1

?

1 1 1 0 1 0 1 1

?

0 0 0 1 1 1 1 0

?

0 0 1 0 0 1 1 1

?

© All materials created by and copyright S.Goff