10 111 110 111 010 000 000 000 000 895 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 10 111 110 111 010 000 000 000 000 895(10) to 32 bit single precision IEEE 754 binary floating point representation standard (1 bit for sign, 8 bits for exponent, 23 bits for mantissa)

What are the steps to convert decimal number
10 111 110 111 010 000 000 000 000 895(10) to 32 bit single precision IEEE 754 binary floating point representation (1 bit for sign, 8 bits for exponent, 23 bits for mantissa)

1. Divide the number repeatedly by 2.

Keep track of each remainder.

We stop when we get a quotient that is equal to zero.


  • division = quotient + remainder;
  • 10 111 110 111 010 000 000 000 000 895 ÷ 2 = 5 055 555 055 505 000 000 000 000 447 + 1;
  • 5 055 555 055 505 000 000 000 000 447 ÷ 2 = 2 527 777 527 752 500 000 000 000 223 + 1;
  • 2 527 777 527 752 500 000 000 000 223 ÷ 2 = 1 263 888 763 876 250 000 000 000 111 + 1;
  • 1 263 888 763 876 250 000 000 000 111 ÷ 2 = 631 944 381 938 125 000 000 000 055 + 1;
  • 631 944 381 938 125 000 000 000 055 ÷ 2 = 315 972 190 969 062 500 000 000 027 + 1;
  • 315 972 190 969 062 500 000 000 027 ÷ 2 = 157 986 095 484 531 250 000 000 013 + 1;
  • 157 986 095 484 531 250 000 000 013 ÷ 2 = 78 993 047 742 265 625 000 000 006 + 1;
  • 78 993 047 742 265 625 000 000 006 ÷ 2 = 39 496 523 871 132 812 500 000 003 + 0;
  • 39 496 523 871 132 812 500 000 003 ÷ 2 = 19 748 261 935 566 406 250 000 001 + 1;
  • 19 748 261 935 566 406 250 000 001 ÷ 2 = 9 874 130 967 783 203 125 000 000 + 1;
  • 9 874 130 967 783 203 125 000 000 ÷ 2 = 4 937 065 483 891 601 562 500 000 + 0;
  • 4 937 065 483 891 601 562 500 000 ÷ 2 = 2 468 532 741 945 800 781 250 000 + 0;
  • 2 468 532 741 945 800 781 250 000 ÷ 2 = 1 234 266 370 972 900 390 625 000 + 0;
  • 1 234 266 370 972 900 390 625 000 ÷ 2 = 617 133 185 486 450 195 312 500 + 0;
  • 617 133 185 486 450 195 312 500 ÷ 2 = 308 566 592 743 225 097 656 250 + 0;
  • 308 566 592 743 225 097 656 250 ÷ 2 = 154 283 296 371 612 548 828 125 + 0;
  • 154 283 296 371 612 548 828 125 ÷ 2 = 77 141 648 185 806 274 414 062 + 1;
  • 77 141 648 185 806 274 414 062 ÷ 2 = 38 570 824 092 903 137 207 031 + 0;
  • 38 570 824 092 903 137 207 031 ÷ 2 = 19 285 412 046 451 568 603 515 + 1;
  • 19 285 412 046 451 568 603 515 ÷ 2 = 9 642 706 023 225 784 301 757 + 1;
  • 9 642 706 023 225 784 301 757 ÷ 2 = 4 821 353 011 612 892 150 878 + 1;
  • 4 821 353 011 612 892 150 878 ÷ 2 = 2 410 676 505 806 446 075 439 + 0;
  • 2 410 676 505 806 446 075 439 ÷ 2 = 1 205 338 252 903 223 037 719 + 1;
  • 1 205 338 252 903 223 037 719 ÷ 2 = 602 669 126 451 611 518 859 + 1;
  • 602 669 126 451 611 518 859 ÷ 2 = 301 334 563 225 805 759 429 + 1;
  • 301 334 563 225 805 759 429 ÷ 2 = 150 667 281 612 902 879 714 + 1;
  • 150 667 281 612 902 879 714 ÷ 2 = 75 333 640 806 451 439 857 + 0;
  • 75 333 640 806 451 439 857 ÷ 2 = 37 666 820 403 225 719 928 + 1;
  • 37 666 820 403 225 719 928 ÷ 2 = 18 833 410 201 612 859 964 + 0;
  • 18 833 410 201 612 859 964 ÷ 2 = 9 416 705 100 806 429 982 + 0;
  • 9 416 705 100 806 429 982 ÷ 2 = 4 708 352 550 403 214 991 + 0;
  • 4 708 352 550 403 214 991 ÷ 2 = 2 354 176 275 201 607 495 + 1;
  • 2 354 176 275 201 607 495 ÷ 2 = 1 177 088 137 600 803 747 + 1;
  • 1 177 088 137 600 803 747 ÷ 2 = 588 544 068 800 401 873 + 1;
  • 588 544 068 800 401 873 ÷ 2 = 294 272 034 400 200 936 + 1;
  • 294 272 034 400 200 936 ÷ 2 = 147 136 017 200 100 468 + 0;
  • 147 136 017 200 100 468 ÷ 2 = 73 568 008 600 050 234 + 0;
  • 73 568 008 600 050 234 ÷ 2 = 36 784 004 300 025 117 + 0;
  • 36 784 004 300 025 117 ÷ 2 = 18 392 002 150 012 558 + 1;
  • 18 392 002 150 012 558 ÷ 2 = 9 196 001 075 006 279 + 0;
  • 9 196 001 075 006 279 ÷ 2 = 4 598 000 537 503 139 + 1;
  • 4 598 000 537 503 139 ÷ 2 = 2 299 000 268 751 569 + 1;
  • 2 299 000 268 751 569 ÷ 2 = 1 149 500 134 375 784 + 1;
  • 1 149 500 134 375 784 ÷ 2 = 574 750 067 187 892 + 0;
  • 574 750 067 187 892 ÷ 2 = 287 375 033 593 946 + 0;
  • 287 375 033 593 946 ÷ 2 = 143 687 516 796 973 + 0;
  • 143 687 516 796 973 ÷ 2 = 71 843 758 398 486 + 1;
  • 71 843 758 398 486 ÷ 2 = 35 921 879 199 243 + 0;
  • 35 921 879 199 243 ÷ 2 = 17 960 939 599 621 + 1;
  • 17 960 939 599 621 ÷ 2 = 8 980 469 799 810 + 1;
  • 8 980 469 799 810 ÷ 2 = 4 490 234 899 905 + 0;
  • 4 490 234 899 905 ÷ 2 = 2 245 117 449 952 + 1;
  • 2 245 117 449 952 ÷ 2 = 1 122 558 724 976 + 0;
  • 1 122 558 724 976 ÷ 2 = 561 279 362 488 + 0;
  • 561 279 362 488 ÷ 2 = 280 639 681 244 + 0;
  • 280 639 681 244 ÷ 2 = 140 319 840 622 + 0;
  • 140 319 840 622 ÷ 2 = 70 159 920 311 + 0;
  • 70 159 920 311 ÷ 2 = 35 079 960 155 + 1;
  • 35 079 960 155 ÷ 2 = 17 539 980 077 + 1;
  • 17 539 980 077 ÷ 2 = 8 769 990 038 + 1;
  • 8 769 990 038 ÷ 2 = 4 384 995 019 + 0;
  • 4 384 995 019 ÷ 2 = 2 192 497 509 + 1;
  • 2 192 497 509 ÷ 2 = 1 096 248 754 + 1;
  • 1 096 248 754 ÷ 2 = 548 124 377 + 0;
  • 548 124 377 ÷ 2 = 274 062 188 + 1;
  • 274 062 188 ÷ 2 = 137 031 094 + 0;
  • 137 031 094 ÷ 2 = 68 515 547 + 0;
  • 68 515 547 ÷ 2 = 34 257 773 + 1;
  • 34 257 773 ÷ 2 = 17 128 886 + 1;
  • 17 128 886 ÷ 2 = 8 564 443 + 0;
  • 8 564 443 ÷ 2 = 4 282 221 + 1;
  • 4 282 221 ÷ 2 = 2 141 110 + 1;
  • 2 141 110 ÷ 2 = 1 070 555 + 0;
  • 1 070 555 ÷ 2 = 535 277 + 1;
  • 535 277 ÷ 2 = 267 638 + 1;
  • 267 638 ÷ 2 = 133 819 + 0;
  • 133 819 ÷ 2 = 66 909 + 1;
  • 66 909 ÷ 2 = 33 454 + 1;
  • 33 454 ÷ 2 = 16 727 + 0;
  • 16 727 ÷ 2 = 8 363 + 1;
  • 8 363 ÷ 2 = 4 181 + 1;
  • 4 181 ÷ 2 = 2 090 + 1;
  • 2 090 ÷ 2 = 1 045 + 0;
  • 1 045 ÷ 2 = 522 + 1;
  • 522 ÷ 2 = 261 + 0;
  • 261 ÷ 2 = 130 + 1;
  • 130 ÷ 2 = 65 + 0;
  • 65 ÷ 2 = 32 + 1;
  • 32 ÷ 2 = 16 + 0;
  • 16 ÷ 2 = 8 + 0;
  • 8 ÷ 2 = 4 + 0;
  • 4 ÷ 2 = 2 + 0;
  • 2 ÷ 2 = 1 + 0;
  • 1 ÷ 2 = 0 + 1;

2. Construct the base 2 representation of the positive number.

Take all the remainders starting from the bottom of the list constructed above.

10 111 110 111 010 000 000 000 000 895(10) =


10 0000 1010 1011 1011 0110 1101 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0111 1111(2)


3. Normalize the binary representation of the number.

Shift the decimal mark 93 positions to the left, so that only one non zero digit remains to the left of it:


10 111 110 111 010 000 000 000 000 895(10) =


10 0000 1010 1011 1011 0110 1101 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0111 1111(2) =


10 0000 1010 1011 1011 0110 1101 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0111 1111(2) × 20 =


1.0000 0101 0101 1101 1011 0110 1100 1011 0111 0000 0101 1010 0011 1010 0011 1100 0101 1110 1110 1000 0001 1011 1111 1(2) × 293


4. Up to this moment, there are the following elements that would feed into the 32 bit single precision IEEE 754 binary floating point representation:

Sign 0 (a positive number)


Exponent (unadjusted): 93


Mantissa (not normalized):
1.0000 0101 0101 1101 1011 0110 1100 1011 0111 0000 0101 1010 0011 1010 0011 1100 0101 1110 1110 1000 0001 1011 1111 1


5. Adjust the exponent.

Use the 8 bit excess/bias notation:


Exponent (adjusted) =


Exponent (unadjusted) + 2(8-1) - 1 =


93 + 2(8-1) - 1 =


(93 + 127)(10) =


220(10)


6. Convert the adjusted exponent from the decimal (base 10) to 8 bit binary.

Use the same technique of repeatedly dividing by 2:


  • division = quotient + remainder;
  • 220 ÷ 2 = 110 + 0;
  • 110 ÷ 2 = 55 + 0;
  • 55 ÷ 2 = 27 + 1;
  • 27 ÷ 2 = 13 + 1;
  • 13 ÷ 2 = 6 + 1;
  • 6 ÷ 2 = 3 + 0;
  • 3 ÷ 2 = 1 + 1;
  • 1 ÷ 2 = 0 + 1;

7. Construct the base 2 representation of the adjusted exponent.

Take all the remainders starting from the bottom of the list constructed above.


Exponent (adjusted) =


220(10) =


1101 1100(2)


8. Normalize the mantissa.

a) Remove the leading (the leftmost) bit, since it's allways 1, and the decimal point, if the case.


b) Adjust its length to 23 bits, by removing the excess bits, from the right (if any of the excess bits is set on 1, we are losing precision...).


Mantissa (normalized) =


1. 000 0010 1010 1110 1101 1011 01 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0111 1111 =


000 0010 1010 1110 1101 1011


9. The three elements that make up the number's 32 bit single precision IEEE 754 binary floating point representation:

Sign (1 bit) =
0 (a positive number)


Exponent (8 bits) =
1101 1100


Mantissa (23 bits) =
000 0010 1010 1110 1101 1011


Decimal number 10 111 110 111 010 000 000 000 000 895 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1101 1100 - 000 0010 1010 1110 1101 1011

How to convert decimal numbers from base ten to 32 bit single precision IEEE 754 binary floating point standard

Follow the steps below to convert a base 10 decimal number to 32 bit single precision IEEE 754 binary floating point:

  • 1. If the number to be converted is negative, start with its the positive version.
  • 2. First convert the integer part. Divide repeatedly by 2 the base ten positive representation of the integer number that is to be converted to binary, until we get a quotient that is equal to zero, keeping track of each remainder.
  • 3. Construct the base 2 representation of the positive integer part of the number, by taking all the remainders of the previous dividing operations, starting from the bottom of the list constructed above. Thus, the last remainder of the divisions becomes the first symbol (the leftmost) of the base two number, while the first remainder becomes the last symbol (the rightmost).
  • 4. Then convert the fractional part. Multiply the number repeatedly by 2, until we get a fractional part that is equal to zero, keeping track of each integer part of the results.
  • 5. Construct the base 2 representation of the fractional part of the number by taking all the integer parts of the previous multiplying operations, starting from the top of the constructed list above (they should appear in the binary representation, from left to right, in the order they have been calculated).
  • 6. Normalize the binary representation of the number, by shifting the decimal point (or if you prefer, the decimal mark) "n" positions either to the left or to the right, so that only one non zero digit remains to the left of the decimal point.
  • 7. Adjust the exponent in 8 bit excess/bias notation and then convert it from decimal (base 10) to 8 bit binary, by using the same technique of repeatedly dividing by 2, as shown above:
    Exponent (adjusted) = Exponent (unadjusted) + 2(8-1) - 1
  • 8. Normalize mantissa, remove the leading (leftmost) bit, since it's allways '1' (and the decimal sign if the case) and adjust its length to 23 bits, either by removing the excess bits from the right (losing precision...) or by adding extra '0' bits to the right.
  • 9. Sign (it takes 1 bit) is either 1 for a negative or 0 for a positive number.

Example: convert the negative number -25.347 from decimal system (base ten) to 32 bit single precision IEEE 754 binary floating point:

  • 1. Start with the positive version of the number:

    |-25.347| = 25.347

  • 2. First convert the integer part, 25. Divide it repeatedly by 2, keeping track of each remainder, until we get a quotient that is equal to zero:
    • division = quotient + remainder;
    • 25 ÷ 2 = 12 + 1;
    • 12 ÷ 2 = 6 + 0;
    • 6 ÷ 2 = 3 + 0;
    • 3 ÷ 2 = 1 + 1;
    • 1 ÷ 2 = 0 + 1;
    • We have encountered a quotient that is ZERO => FULL STOP
  • 3. Construct the base 2 representation of the integer part of the number by taking all the remainders of the previous dividing operations, starting from the bottom of the list constructed above:

    25(10) = 1 1001(2)

  • 4. Then convert the fractional part, 0.347. Multiply repeatedly by 2, keeping track of each integer part of the results, until we get a fractional part that is equal to zero:
    • #) multiplying = integer + fractional part;
    • 1) 0.347 × 2 = 0 + 0.694;
    • 2) 0.694 × 2 = 1 + 0.388;
    • 3) 0.388 × 2 = 0 + 0.776;
    • 4) 0.776 × 2 = 1 + 0.552;
    • 5) 0.552 × 2 = 1 + 0.104;
    • 6) 0.104 × 2 = 0 + 0.208;
    • 7) 0.208 × 2 = 0 + 0.416;
    • 8) 0.416 × 2 = 0 + 0.832;
    • 9) 0.832 × 2 = 1 + 0.664;
    • 10) 0.664 × 2 = 1 + 0.328;
    • 11) 0.328 × 2 = 0 + 0.656;
    • 12) 0.656 × 2 = 1 + 0.312;
    • 13) 0.312 × 2 = 0 + 0.624;
    • 14) 0.624 × 2 = 1 + 0.248;
    • 15) 0.248 × 2 = 0 + 0.496;
    • 16) 0.496 × 2 = 0 + 0.992;
    • 17) 0.992 × 2 = 1 + 0.984;
    • 18) 0.984 × 2 = 1 + 0.968;
    • 19) 0.968 × 2 = 1 + 0.936;
    • 20) 0.936 × 2 = 1 + 0.872;
    • 21) 0.872 × 2 = 1 + 0.744;
    • 22) 0.744 × 2 = 1 + 0.488;
    • 23) 0.488 × 2 = 0 + 0.976;
    • 24) 0.976 × 2 = 1 + 0.952;
    • We didn't get any fractional part that was equal to zero. But we had enough iterations (over Mantissa limit = 23) and at least one integer part that was different from zero => FULL STOP (losing precision...).
  • 5. Construct the base 2 representation of the fractional part of the number, by taking all the integer parts of the previous multiplying operations, starting from the top of the constructed list above:

    0.347(10) = 0.0101 1000 1101 0100 1111 1101(2)

  • 6. Summarizing - the positive number before normalization:

    25.347(10) = 1 1001.0101 1000 1101 0100 1111 1101(2)

  • 7. Normalize the binary representation of the number, shifting the decimal point 4 positions to the left so that only one non-zero digit stays to the left of the decimal point:

    25.347(10) =
    1 1001.0101 1000 1101 0100 1111 1101(2) =
    1 1001.0101 1000 1101 0100 1111 1101(2) × 20 =
    1.1001 0101 1000 1101 0100 1111 1101(2) × 24

  • 8. Up to this moment, there are the following elements that would feed into the 32 bit single precision IEEE 754 binary floating point:

    Sign: 1 (a negative number)

    Exponent (unadjusted): 4

    Mantissa (not-normalized): 1.1001 0101 1000 1101 0100 1111 1101

  • 9. Adjust the exponent in 8 bit excess/bias notation and then convert it from decimal (base 10) to 8 bit binary (base 2), by using the same technique of repeatedly dividing it by 2, as already demonstrated above:

    Exponent (adjusted) = Exponent (unadjusted) + 2(8-1) - 1 = (4 + 127)(10) = 131(10) =
    1000 0011(2)

  • 10. Normalize the mantissa, remove the leading (leftmost) bit, since it's allways '1' (and the decimal point) and adjust its length to 23 bits, by removing the excess bits from the right (losing precision...):

    Mantissa (not-normalized): 1.1001 0101 1000 1101 0100 1111 1101

    Mantissa (normalized): 100 1010 1100 0110 1010 0111

  • Conclusion:

    Sign (1 bit) = 1 (a negative number)

    Exponent (8 bits) = 1000 0011

    Mantissa (23 bits) = 100 1010 1100 0110 1010 0111

  • Number -25.347, converted from the decimal system (base 10) to 32 bit single precision IEEE 754 binary floating point =
    1 - 1000 0011 - 100 1010 1100 0110 1010 0111