32bit IEEE 754: Decimal ↗ Single Precision Floating Point Binary: 10 111 111 110 110 011 001 100 110 011 028 Convert the Number to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard, From a Base 10 Decimal System Number

Number 10 111 111 110 110 011 001 100 110 011 028(10) converted and written in 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 111 110 110 011 001 100 110 011 028 ÷ 2 = 5 055 555 555 055 005 500 550 055 005 514 + 0;
  • 5 055 555 555 055 005 500 550 055 005 514 ÷ 2 = 2 527 777 777 527 502 750 275 027 502 757 + 0;
  • 2 527 777 777 527 502 750 275 027 502 757 ÷ 2 = 1 263 888 888 763 751 375 137 513 751 378 + 1;
  • 1 263 888 888 763 751 375 137 513 751 378 ÷ 2 = 631 944 444 381 875 687 568 756 875 689 + 0;
  • 631 944 444 381 875 687 568 756 875 689 ÷ 2 = 315 972 222 190 937 843 784 378 437 844 + 1;
  • 315 972 222 190 937 843 784 378 437 844 ÷ 2 = 157 986 111 095 468 921 892 189 218 922 + 0;
  • 157 986 111 095 468 921 892 189 218 922 ÷ 2 = 78 993 055 547 734 460 946 094 609 461 + 0;
  • 78 993 055 547 734 460 946 094 609 461 ÷ 2 = 39 496 527 773 867 230 473 047 304 730 + 1;
  • 39 496 527 773 867 230 473 047 304 730 ÷ 2 = 19 748 263 886 933 615 236 523 652 365 + 0;
  • 19 748 263 886 933 615 236 523 652 365 ÷ 2 = 9 874 131 943 466 807 618 261 826 182 + 1;
  • 9 874 131 943 466 807 618 261 826 182 ÷ 2 = 4 937 065 971 733 403 809 130 913 091 + 0;
  • 4 937 065 971 733 403 809 130 913 091 ÷ 2 = 2 468 532 985 866 701 904 565 456 545 + 1;
  • 2 468 532 985 866 701 904 565 456 545 ÷ 2 = 1 234 266 492 933 350 952 282 728 272 + 1;
  • 1 234 266 492 933 350 952 282 728 272 ÷ 2 = 617 133 246 466 675 476 141 364 136 + 0;
  • 617 133 246 466 675 476 141 364 136 ÷ 2 = 308 566 623 233 337 738 070 682 068 + 0;
  • 308 566 623 233 337 738 070 682 068 ÷ 2 = 154 283 311 616 668 869 035 341 034 + 0;
  • 154 283 311 616 668 869 035 341 034 ÷ 2 = 77 141 655 808 334 434 517 670 517 + 0;
  • 77 141 655 808 334 434 517 670 517 ÷ 2 = 38 570 827 904 167 217 258 835 258 + 1;
  • 38 570 827 904 167 217 258 835 258 ÷ 2 = 19 285 413 952 083 608 629 417 629 + 0;
  • 19 285 413 952 083 608 629 417 629 ÷ 2 = 9 642 706 976 041 804 314 708 814 + 1;
  • 9 642 706 976 041 804 314 708 814 ÷ 2 = 4 821 353 488 020 902 157 354 407 + 0;
  • 4 821 353 488 020 902 157 354 407 ÷ 2 = 2 410 676 744 010 451 078 677 203 + 1;
  • 2 410 676 744 010 451 078 677 203 ÷ 2 = 1 205 338 372 005 225 539 338 601 + 1;
  • 1 205 338 372 005 225 539 338 601 ÷ 2 = 602 669 186 002 612 769 669 300 + 1;
  • 602 669 186 002 612 769 669 300 ÷ 2 = 301 334 593 001 306 384 834 650 + 0;
  • 301 334 593 001 306 384 834 650 ÷ 2 = 150 667 296 500 653 192 417 325 + 0;
  • 150 667 296 500 653 192 417 325 ÷ 2 = 75 333 648 250 326 596 208 662 + 1;
  • 75 333 648 250 326 596 208 662 ÷ 2 = 37 666 824 125 163 298 104 331 + 0;
  • 37 666 824 125 163 298 104 331 ÷ 2 = 18 833 412 062 581 649 052 165 + 1;
  • 18 833 412 062 581 649 052 165 ÷ 2 = 9 416 706 031 290 824 526 082 + 1;
  • 9 416 706 031 290 824 526 082 ÷ 2 = 4 708 353 015 645 412 263 041 + 0;
  • 4 708 353 015 645 412 263 041 ÷ 2 = 2 354 176 507 822 706 131 520 + 1;
  • 2 354 176 507 822 706 131 520 ÷ 2 = 1 177 088 253 911 353 065 760 + 0;
  • 1 177 088 253 911 353 065 760 ÷ 2 = 588 544 126 955 676 532 880 + 0;
  • 588 544 126 955 676 532 880 ÷ 2 = 294 272 063 477 838 266 440 + 0;
  • 294 272 063 477 838 266 440 ÷ 2 = 147 136 031 738 919 133 220 + 0;
  • 147 136 031 738 919 133 220 ÷ 2 = 73 568 015 869 459 566 610 + 0;
  • 73 568 015 869 459 566 610 ÷ 2 = 36 784 007 934 729 783 305 + 0;
  • 36 784 007 934 729 783 305 ÷ 2 = 18 392 003 967 364 891 652 + 1;
  • 18 392 003 967 364 891 652 ÷ 2 = 9 196 001 983 682 445 826 + 0;
  • 9 196 001 983 682 445 826 ÷ 2 = 4 598 000 991 841 222 913 + 0;
  • 4 598 000 991 841 222 913 ÷ 2 = 2 299 000 495 920 611 456 + 1;
  • 2 299 000 495 920 611 456 ÷ 2 = 1 149 500 247 960 305 728 + 0;
  • 1 149 500 247 960 305 728 ÷ 2 = 574 750 123 980 152 864 + 0;
  • 574 750 123 980 152 864 ÷ 2 = 287 375 061 990 076 432 + 0;
  • 287 375 061 990 076 432 ÷ 2 = 143 687 530 995 038 216 + 0;
  • 143 687 530 995 038 216 ÷ 2 = 71 843 765 497 519 108 + 0;
  • 71 843 765 497 519 108 ÷ 2 = 35 921 882 748 759 554 + 0;
  • 35 921 882 748 759 554 ÷ 2 = 17 960 941 374 379 777 + 0;
  • 17 960 941 374 379 777 ÷ 2 = 8 980 470 687 189 888 + 1;
  • 8 980 470 687 189 888 ÷ 2 = 4 490 235 343 594 944 + 0;
  • 4 490 235 343 594 944 ÷ 2 = 2 245 117 671 797 472 + 0;
  • 2 245 117 671 797 472 ÷ 2 = 1 122 558 835 898 736 + 0;
  • 1 122 558 835 898 736 ÷ 2 = 561 279 417 949 368 + 0;
  • 561 279 417 949 368 ÷ 2 = 280 639 708 974 684 + 0;
  • 280 639 708 974 684 ÷ 2 = 140 319 854 487 342 + 0;
  • 140 319 854 487 342 ÷ 2 = 70 159 927 243 671 + 0;
  • 70 159 927 243 671 ÷ 2 = 35 079 963 621 835 + 1;
  • 35 079 963 621 835 ÷ 2 = 17 539 981 810 917 + 1;
  • 17 539 981 810 917 ÷ 2 = 8 769 990 905 458 + 1;
  • 8 769 990 905 458 ÷ 2 = 4 384 995 452 729 + 0;
  • 4 384 995 452 729 ÷ 2 = 2 192 497 726 364 + 1;
  • 2 192 497 726 364 ÷ 2 = 1 096 248 863 182 + 0;
  • 1 096 248 863 182 ÷ 2 = 548 124 431 591 + 0;
  • 548 124 431 591 ÷ 2 = 274 062 215 795 + 1;
  • 274 062 215 795 ÷ 2 = 137 031 107 897 + 1;
  • 137 031 107 897 ÷ 2 = 68 515 553 948 + 1;
  • 68 515 553 948 ÷ 2 = 34 257 776 974 + 0;
  • 34 257 776 974 ÷ 2 = 17 128 888 487 + 0;
  • 17 128 888 487 ÷ 2 = 8 564 444 243 + 1;
  • 8 564 444 243 ÷ 2 = 4 282 222 121 + 1;
  • 4 282 222 121 ÷ 2 = 2 141 111 060 + 1;
  • 2 141 111 060 ÷ 2 = 1 070 555 530 + 0;
  • 1 070 555 530 ÷ 2 = 535 277 765 + 0;
  • 535 277 765 ÷ 2 = 267 638 882 + 1;
  • 267 638 882 ÷ 2 = 133 819 441 + 0;
  • 133 819 441 ÷ 2 = 66 909 720 + 1;
  • 66 909 720 ÷ 2 = 33 454 860 + 0;
  • 33 454 860 ÷ 2 = 16 727 430 + 0;
  • 16 727 430 ÷ 2 = 8 363 715 + 0;
  • 8 363 715 ÷ 2 = 4 181 857 + 1;
  • 4 181 857 ÷ 2 = 2 090 928 + 1;
  • 2 090 928 ÷ 2 = 1 045 464 + 0;
  • 1 045 464 ÷ 2 = 522 732 + 0;
  • 522 732 ÷ 2 = 261 366 + 0;
  • 261 366 ÷ 2 = 130 683 + 0;
  • 130 683 ÷ 2 = 65 341 + 1;
  • 65 341 ÷ 2 = 32 670 + 1;
  • 32 670 ÷ 2 = 16 335 + 0;
  • 16 335 ÷ 2 = 8 167 + 1;
  • 8 167 ÷ 2 = 4 083 + 1;
  • 4 083 ÷ 2 = 2 041 + 1;
  • 2 041 ÷ 2 = 1 020 + 1;
  • 1 020 ÷ 2 = 510 + 0;
  • 510 ÷ 2 = 255 + 0;
  • 255 ÷ 2 = 127 + 1;
  • 127 ÷ 2 = 63 + 1;
  • 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 111 111 110 110 011 001 100 110 011 028(10) =


111 1111 1001 1110 1100 0011 0001 0100 1110 0111 0010 1110 0000 0010 0000 0010 0100 0000 1011 0100 1110 1010 0001 1010 1001 0100(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 111 111 110 110 011 001 100 110 011 028(10) =


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


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


1.1111 1110 0111 1011 0000 1100 0101 0011 1001 1100 1011 1000 0000 1000 0000 1001 0000 0010 1101 0011 1010 1000 0110 1010 0101 00(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 1110 0111 1011 0000 1100 0101 0011 1001 1100 1011 1000 0000 1000 0000 1001 0000 0010 1101 0011 1010 1000 0110 1010 0101 00


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 1111 0011 1101 1000 0110 001 0100 1110 0111 0010 1110 0000 0010 0000 0010 0100 0000 1011 0100 1110 1010 0001 1010 1001 0100 =


111 1111 0011 1101 1000 0110


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 1111 0011 1101 1000 0110


The base ten decimal number 10 111 111 110 110 011 001 100 110 011 028 converted and written in 32 bit single precision IEEE 754 binary floating point representation:
0 - 1110 0101 - 111 1111 0011 1101 1000 0110

The latest decimal numbers converted from base ten to 32 bit single precision IEEE 754 floating point binary standard representation

Number 23.343 71 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number -2.471 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number 6 041 463 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number 0.666 177 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number 16.23 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number 113.005 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number 2.05 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number 183 085 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number 420.6 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
Number -245.878 converted from decimal system (written in base ten) to 32 bit single precision IEEE 754 binary floating point representation standard Apr 30 20:54 UTC (GMT)
All base ten decimal numbers converted to 32 bit single precision IEEE 754 binary floating point

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