Problem in finding the floating point representation? So, i was trying:

$(-10.75)_{10}$ and to convert it into 32 bit binary floating point representation.

i did this:
According to IEEE standard:  $(-1)^{-s} * 1.M * 2^{E-bias} $

 sign bit= 1 bit
 exponent= 8 bits
 mantissa= 23 bits


bias= $2^{n-1}-1 = 127$

  - 10   . 75
  ⇓  ⇓      ⇓
= 1 1010 . 11
= 1 1.01011 x 2^-3
= 1 1.01011 x 2^(124-127)
= 1 01111100 0101100 0000 0000 0000 0000   = 32 bits
  ⇓ ________ ____________________________
  ⇓    ⇓                  ⇓
 sign  Exponent         Mantissa


But the answer presented is:

  - 10   . 75
  ⇓  ⇓      ⇓
= 1 1010 . 11
= 1 1.101011 x 2^-4
      -------&gt; why this happened, and why is 1 before '.'   
= 1 1.101011 x 2^(123-127)
= 1 01111011 1010110 0000 0000 0000 0000   = 32 bits
  ⇓ ________ ____________________________
  ⇓    ⇓                  ⇓
 sign  Exponent         Mantissa


If i am wrong, where is it and please explain why..
Any help is appreciated.
Both answers seem wrong to me. A quick conversion in C++:

#include &lt;stdio.h&gt;
#include &lt;math.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdint.h&gt;

int main (void)
{
    float x = -10.75;
    uint32_t* p = (uint32_t*)&amp;x;
    printf("%x\n",*p);

    return 0;
}


Gives the output: c12c0000

Which is 1 10000010 010110000…

Your mantissa calculation is the correct one, but the binary exponent is +3, not -3 (that is, your number is greater than 1, not less than 1). In bias-127, that exponent becomes 130 (decimal).