I currently am studying 32 bits conversions at shcool. I am a bit at a loss, tho, as to why I should either move a floating point when I am done with converting everything to 32 bits.
In: 21.5 * 12.75
The answer, in base ten is: 274.125
The answer I found in 32 bits is: 0 | 10000110 | 00100100100000000000000|
Exponant being: 7 Mantissa being: 137.0625
I now that to achieve the correct answer I have to move one bit to the right, but I fail to understand why and it bugs me...
Should I add one bit to the exponant? Should I move 1 bit to the right of the floating point? That'd give me a 0 as a sign bit which would make sense in a way, but I still need that 1,xxxxx for scientific notation... Argh... Help.
Your first mantissa is $1.01011_2$ and the second is $1.10011_2$. When you multiply those two numbers, you get $10.0010010001_2$. (The product of two numbers between $1$ and $2$ may be anywhere between $1$ and $4$!) You can detect that by counting the number of binary places (I was tempted to write "decimal" places - but this is binary after all!): after counting $5+5=10$ binary places, you have "$10.$" or "$11.$" (rather than just "$1.$") before the binary point.
This is why you need to "fix up" the mantissa by dividing by two/right shifting: $1.00010010001_2$, and then you need to match that by incrementing your exponent by $1$ (from $7$ to $8$), eventually achieving:
$$0|10000111|00010010001000000000000$$
If the original product of the mantissas ended up as $1.\text{<10 digits>}_2$, then it would mean that it did not need fixing up, and your work would be correct.