2 added 135 characters in body
source | link

I went through a question which askedHow to represent $0.145 * 2^{14}$$0.148 * 2^{14}$ in normalized floating point arithmetic with the format

1 - Sign bit
7 - Exponent in Excess-64 form
8 - Mantissa

$(0.145)_{10} = (0.00100101001...)_2$ (say A).$(0.148)_{10} = (0.00100101\;111...)_2$

We shift it 3 bits to left to make it normalized $(1.00101001)_2 * 2^{11}$$(1.00101\;111)_2 * 2^{11}$.

Exponent = $11+64 = (75)_{10} = (1001011)_2$ and Mantissa = $(01001001)_2$$(01001\;111)_2$.

So floating point representation should beis $(0\;1001011\;00101001)_2 = (4B29)_{16}$.$(0\;1001011\;00101111)_2 = (4B2F)_{16}$ Representation A

But if we store the solution considered $(0.145)_{10} = (0.00100101)_2$(uptodenormalized mantissa into 8 bits only). Shiftingbit register, then it won't have stored the last three $1$s and then the mantissa would have normalized from $(0.00100101)_2$ to left$(1.00101\;000)_2$ by inserting zeroes to the right makes it3 $(01001000)_2$$0$s instead of $(01001001)_2$$1$s. And the

The representation becomeswould have been $(4B28)_{16}$.$(0\;1001011\;00101000)_2 = (4B28)_{16}$ Representation B

So while normalizing, does the processor takes into account the denormalized mantissa bits beyond 8 bits too? Or just rounds it off? Which one is correct: A or B?

Does it store the mantissa in fixed point representation? How does it all work?

I went through a question which asked to represent $0.145 * 2^{14}$ in normalized floating point arithmetic with the format

1 - Sign bit
7 - Exponent in Excess-64 form
8 - Mantissa

$(0.145)_{10} = (0.00100101001...)_2$ (say A). We shift it 3 bits to left to make it normalized $(1.00101001)_2 * 2^{11}$.

Exponent = $11+64 = (75)_{10} = (1001011)_2$ and Mantissa = $(01001001)_2$.

So floating point representation should be $(0\;1001011\;00101001)_2 = (4B29)_{16}$.

But the solution considered $(0.145)_{10} = (0.00100101)_2$(upto 8 bits only). Shifting it to left by inserting zeroes to the right makes it $(01001000)_2$ instead of $(01001001)_2$. And the representation becomes $(4B28)_{16}$.

So while normalizing, does the processor takes into account the mantissa bits beyond 8 bits too? Or just rounds it off?

Does it store the mantissa in fixed point representation? How does it all work?

How to represent $0.148 * 2^{14}$ in normalized floating point arithmetic with the format

1 - Sign bit
7 - Exponent in Excess-64 form
8 - Mantissa

$(0.148)_{10} = (0.00100101\;111...)_2$

We shift it 3 bits to left to make it normalized $(1.00101\;111)_2 * 2^{11}$.

Exponent = $11+64 = (75)_{10} = (1001011)_2$ and Mantissa = $(01001\;111)_2$.

So floating point representation is $(0\;1001011\;00101111)_2 = (4B2F)_{16}$ Representation A

But if we store the denormalized mantissa into 8 bit register, then it won't have stored the last three $1$s and then the mantissa would have normalized from $(0.00100101)_2$ to $(1.00101\;000)_2$ by inserting 3 $0$s instead of $1$s.

The representation would have been $(0\;1001011\;00101000)_2 = (4B28)_{16}$ Representation B

So while normalizing, does the processor takes into account the denormalized mantissa bits beyond 8 bits too? Or just rounds it off? Which one is correct: A or B?

Does it store the mantissa in fixed point representation? How does it all work?

    Tweeted twitter.com/#!/StackCompSci/status/288599688427491328
1
source | link

Normalizing the mantissa in floating point representation

I went through a question which asked to represent $0.145 * 2^{14}$ in normalized floating point arithmetic with the format

1 - Sign bit
7 - Exponent in Excess-64 form
8 - Mantissa

$(0.145)_{10} = (0.00100101001...)_2$ (say A). We shift it 3 bits to left to make it normalized $(1.00101001)_2 * 2^{11}$.

Exponent = $11+64 = (75)_{10} = (1001011)_2$ and Mantissa = $(01001001)_2$.

So floating point representation should be $(0\;1001011\;00101001)_2 = (4B29)_{16}$.

But the solution considered $(0.145)_{10} = (0.00100101)_2$(upto 8 bits only). Shifting it to left by inserting zeroes to the right makes it $(01001000)_2$ instead of $(01001001)_2$. And the representation becomes $(4B28)_{16}$.

So while normalizing, does the processor takes into account the mantissa bits beyond 8 bits too? Or just rounds it off?

Does it store the mantissa in fixed point representation? How does it all work?