10 011 110 111 111 111 111 111 011 001 577 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 10 011 110 111 111 111 111 111 011 001 577(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 011 110 111 111 111 111 111 011 001 577(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 011 110 111 111 111 111 111 011 001 577 ÷ 2 = 5 005 555 055 555 555 555 555 505 500 788 + 1;
  • 5 005 555 055 555 555 555 555 505 500 788 ÷ 2 = 2 502 777 527 777 777 777 777 752 750 394 + 0;
  • 2 502 777 527 777 777 777 777 752 750 394 ÷ 2 = 1 251 388 763 888 888 888 888 876 375 197 + 0;
  • 1 251 388 763 888 888 888 888 876 375 197 ÷ 2 = 625 694 381 944 444 444 444 438 187 598 + 1;
  • 625 694 381 944 444 444 444 438 187 598 ÷ 2 = 312 847 190 972 222 222 222 219 093 799 + 0;
  • 312 847 190 972 222 222 222 219 093 799 ÷ 2 = 156 423 595 486 111 111 111 109 546 899 + 1;
  • 156 423 595 486 111 111 111 109 546 899 ÷ 2 = 78 211 797 743 055 555 555 554 773 449 + 1;
  • 78 211 797 743 055 555 555 554 773 449 ÷ 2 = 39 105 898 871 527 777 777 777 386 724 + 1;
  • 39 105 898 871 527 777 777 777 386 724 ÷ 2 = 19 552 949 435 763 888 888 888 693 362 + 0;
  • 19 552 949 435 763 888 888 888 693 362 ÷ 2 = 9 776 474 717 881 944 444 444 346 681 + 0;
  • 9 776 474 717 881 944 444 444 346 681 ÷ 2 = 4 888 237 358 940 972 222 222 173 340 + 1;
  • 4 888 237 358 940 972 222 222 173 340 ÷ 2 = 2 444 118 679 470 486 111 111 086 670 + 0;
  • 2 444 118 679 470 486 111 111 086 670 ÷ 2 = 1 222 059 339 735 243 055 555 543 335 + 0;
  • 1 222 059 339 735 243 055 555 543 335 ÷ 2 = 611 029 669 867 621 527 777 771 667 + 1;
  • 611 029 669 867 621 527 777 771 667 ÷ 2 = 305 514 834 933 810 763 888 885 833 + 1;
  • 305 514 834 933 810 763 888 885 833 ÷ 2 = 152 757 417 466 905 381 944 442 916 + 1;
  • 152 757 417 466 905 381 944 442 916 ÷ 2 = 76 378 708 733 452 690 972 221 458 + 0;
  • 76 378 708 733 452 690 972 221 458 ÷ 2 = 38 189 354 366 726 345 486 110 729 + 0;
  • 38 189 354 366 726 345 486 110 729 ÷ 2 = 19 094 677 183 363 172 743 055 364 + 1;
  • 19 094 677 183 363 172 743 055 364 ÷ 2 = 9 547 338 591 681 586 371 527 682 + 0;
  • 9 547 338 591 681 586 371 527 682 ÷ 2 = 4 773 669 295 840 793 185 763 841 + 0;
  • 4 773 669 295 840 793 185 763 841 ÷ 2 = 2 386 834 647 920 396 592 881 920 + 1;
  • 2 386 834 647 920 396 592 881 920 ÷ 2 = 1 193 417 323 960 198 296 440 960 + 0;
  • 1 193 417 323 960 198 296 440 960 ÷ 2 = 596 708 661 980 099 148 220 480 + 0;
  • 596 708 661 980 099 148 220 480 ÷ 2 = 298 354 330 990 049 574 110 240 + 0;
  • 298 354 330 990 049 574 110 240 ÷ 2 = 149 177 165 495 024 787 055 120 + 0;
  • 149 177 165 495 024 787 055 120 ÷ 2 = 74 588 582 747 512 393 527 560 + 0;
  • 74 588 582 747 512 393 527 560 ÷ 2 = 37 294 291 373 756 196 763 780 + 0;
  • 37 294 291 373 756 196 763 780 ÷ 2 = 18 647 145 686 878 098 381 890 + 0;
  • 18 647 145 686 878 098 381 890 ÷ 2 = 9 323 572 843 439 049 190 945 + 0;
  • 9 323 572 843 439 049 190 945 ÷ 2 = 4 661 786 421 719 524 595 472 + 1;
  • 4 661 786 421 719 524 595 472 ÷ 2 = 2 330 893 210 859 762 297 736 + 0;
  • 2 330 893 210 859 762 297 736 ÷ 2 = 1 165 446 605 429 881 148 868 + 0;
  • 1 165 446 605 429 881 148 868 ÷ 2 = 582 723 302 714 940 574 434 + 0;
  • 582 723 302 714 940 574 434 ÷ 2 = 291 361 651 357 470 287 217 + 0;
  • 291 361 651 357 470 287 217 ÷ 2 = 145 680 825 678 735 143 608 + 1;
  • 145 680 825 678 735 143 608 ÷ 2 = 72 840 412 839 367 571 804 + 0;
  • 72 840 412 839 367 571 804 ÷ 2 = 36 420 206 419 683 785 902 + 0;
  • 36 420 206 419 683 785 902 ÷ 2 = 18 210 103 209 841 892 951 + 0;
  • 18 210 103 209 841 892 951 ÷ 2 = 9 105 051 604 920 946 475 + 1;
  • 9 105 051 604 920 946 475 ÷ 2 = 4 552 525 802 460 473 237 + 1;
  • 4 552 525 802 460 473 237 ÷ 2 = 2 276 262 901 230 236 618 + 1;
  • 2 276 262 901 230 236 618 ÷ 2 = 1 138 131 450 615 118 309 + 0;
  • 1 138 131 450 615 118 309 ÷ 2 = 569 065 725 307 559 154 + 1;
  • 569 065 725 307 559 154 ÷ 2 = 284 532 862 653 779 577 + 0;
  • 284 532 862 653 779 577 ÷ 2 = 142 266 431 326 889 788 + 1;
  • 142 266 431 326 889 788 ÷ 2 = 71 133 215 663 444 894 + 0;
  • 71 133 215 663 444 894 ÷ 2 = 35 566 607 831 722 447 + 0;
  • 35 566 607 831 722 447 ÷ 2 = 17 783 303 915 861 223 + 1;
  • 17 783 303 915 861 223 ÷ 2 = 8 891 651 957 930 611 + 1;
  • 8 891 651 957 930 611 ÷ 2 = 4 445 825 978 965 305 + 1;
  • 4 445 825 978 965 305 ÷ 2 = 2 222 912 989 482 652 + 1;
  • 2 222 912 989 482 652 ÷ 2 = 1 111 456 494 741 326 + 0;
  • 1 111 456 494 741 326 ÷ 2 = 555 728 247 370 663 + 0;
  • 555 728 247 370 663 ÷ 2 = 277 864 123 685 331 + 1;
  • 277 864 123 685 331 ÷ 2 = 138 932 061 842 665 + 1;
  • 138 932 061 842 665 ÷ 2 = 69 466 030 921 332 + 1;
  • 69 466 030 921 332 ÷ 2 = 34 733 015 460 666 + 0;
  • 34 733 015 460 666 ÷ 2 = 17 366 507 730 333 + 0;
  • 17 366 507 730 333 ÷ 2 = 8 683 253 865 166 + 1;
  • 8 683 253 865 166 ÷ 2 = 4 341 626 932 583 + 0;
  • 4 341 626 932 583 ÷ 2 = 2 170 813 466 291 + 1;
  • 2 170 813 466 291 ÷ 2 = 1 085 406 733 145 + 1;
  • 1 085 406 733 145 ÷ 2 = 542 703 366 572 + 1;
  • 542 703 366 572 ÷ 2 = 271 351 683 286 + 0;
  • 271 351 683 286 ÷ 2 = 135 675 841 643 + 0;
  • 135 675 841 643 ÷ 2 = 67 837 920 821 + 1;
  • 67 837 920 821 ÷ 2 = 33 918 960 410 + 1;
  • 33 918 960 410 ÷ 2 = 16 959 480 205 + 0;
  • 16 959 480 205 ÷ 2 = 8 479 740 102 + 1;
  • 8 479 740 102 ÷ 2 = 4 239 870 051 + 0;
  • 4 239 870 051 ÷ 2 = 2 119 935 025 + 1;
  • 2 119 935 025 ÷ 2 = 1 059 967 512 + 1;
  • 1 059 967 512 ÷ 2 = 529 983 756 + 0;
  • 529 983 756 ÷ 2 = 264 991 878 + 0;
  • 264 991 878 ÷ 2 = 132 495 939 + 0;
  • 132 495 939 ÷ 2 = 66 247 969 + 1;
  • 66 247 969 ÷ 2 = 33 123 984 + 1;
  • 33 123 984 ÷ 2 = 16 561 992 + 0;
  • 16 561 992 ÷ 2 = 8 280 996 + 0;
  • 8 280 996 ÷ 2 = 4 140 498 + 0;
  • 4 140 498 ÷ 2 = 2 070 249 + 0;
  • 2 070 249 ÷ 2 = 1 035 124 + 1;
  • 1 035 124 ÷ 2 = 517 562 + 0;
  • 517 562 ÷ 2 = 258 781 + 0;
  • 258 781 ÷ 2 = 129 390 + 1;
  • 129 390 ÷ 2 = 64 695 + 0;
  • 64 695 ÷ 2 = 32 347 + 1;
  • 32 347 ÷ 2 = 16 173 + 1;
  • 16 173 ÷ 2 = 8 086 + 1;
  • 8 086 ÷ 2 = 4 043 + 0;
  • 4 043 ÷ 2 = 2 021 + 1;
  • 2 021 ÷ 2 = 1 010 + 1;
  • 1 010 ÷ 2 = 505 + 0;
  • 505 ÷ 2 = 252 + 1;
  • 252 ÷ 2 = 126 + 0;
  • 126 ÷ 2 = 63 + 0;
  • 63 ÷ 2 = 31 + 1;
  • 31 ÷ 2 = 15 + 1;
  • 15 ÷ 2 = 7 + 1;
  • 7 ÷ 2 = 3 + 1;
  • 3 ÷ 2 = 1 + 1;
  • 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 011 110 111 111 111 111 111 011 001 577(10) =


111 1110 0101 1011 1010 0100 0011 0001 1010 1100 1110 1001 1100 1111 0010 1011 1000 1000 0100 0000 0010 0100 1110 0100 1110 1001(2)


3. Normalize the binary representation of the number.

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


10 011 110 111 111 111 111 111 011 001 577(10) =


111 1110 0101 1011 1010 0100 0011 0001 1010 1100 1110 1001 1100 1111 0010 1011 1000 1000 0100 0000 0010 0100 1110 0100 1110 1001(2) =


111 1110 0101 1011 1010 0100 0011 0001 1010 1100 1110 1001 1100 1111 0010 1011 1000 1000 0100 0000 0010 0100 1110 0100 1110 1001(2) × 20 =


1.1111 1001 0110 1110 1001 0000 1100 0110 1011 0011 1010 0111 0011 1100 1010 1110 0010 0001 0000 0000 1001 0011 1001 0011 1010 01(2) × 2102


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): 102


Mantissa (not normalized):
1.1111 1001 0110 1110 1001 0000 1100 0110 1011 0011 1010 0111 0011 1100 1010 1110 0010 0001 0000 0000 1001 0011 1001 0011 1010 01


5. Adjust the exponent.

Use the 8 bit excess/bias notation:


Exponent (adjusted) =


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


102 + 2(8-1) - 1 =


(102 + 127)(10) =


229(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;
  • 229 ÷ 2 = 114 + 1;
  • 114 ÷ 2 = 57 + 0;
  • 57 ÷ 2 = 28 + 1;
  • 28 ÷ 2 = 14 + 0;
  • 14 ÷ 2 = 7 + 0;
  • 7 ÷ 2 = 3 + 1;
  • 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) =


229(10) =


1110 0101(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. 111 1100 1011 0111 0100 1000 011 0001 1010 1100 1110 1001 1100 1111 0010 1011 1000 1000 0100 0000 0010 0100 1110 0100 1110 1001 =


111 1100 1011 0111 0100 1000


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) =
1110 0101


Mantissa (23 bits) =
111 1100 1011 0111 0100 1000


Decimal number 10 011 110 111 111 111 111 111 011 001 577 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1110 0101 - 111 1100 1011 0111 0100 1000


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