1 000 110 011 010 101 001 111 000 000 877 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 1 000 110 011 010 101 001 111 000 000 877(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
1 000 110 011 010 101 001 111 000 000 877(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;
  • 1 000 110 011 010 101 001 111 000 000 877 ÷ 2 = 500 055 005 505 050 500 555 500 000 438 + 1;
  • 500 055 005 505 050 500 555 500 000 438 ÷ 2 = 250 027 502 752 525 250 277 750 000 219 + 0;
  • 250 027 502 752 525 250 277 750 000 219 ÷ 2 = 125 013 751 376 262 625 138 875 000 109 + 1;
  • 125 013 751 376 262 625 138 875 000 109 ÷ 2 = 62 506 875 688 131 312 569 437 500 054 + 1;
  • 62 506 875 688 131 312 569 437 500 054 ÷ 2 = 31 253 437 844 065 656 284 718 750 027 + 0;
  • 31 253 437 844 065 656 284 718 750 027 ÷ 2 = 15 626 718 922 032 828 142 359 375 013 + 1;
  • 15 626 718 922 032 828 142 359 375 013 ÷ 2 = 7 813 359 461 016 414 071 179 687 506 + 1;
  • 7 813 359 461 016 414 071 179 687 506 ÷ 2 = 3 906 679 730 508 207 035 589 843 753 + 0;
  • 3 906 679 730 508 207 035 589 843 753 ÷ 2 = 1 953 339 865 254 103 517 794 921 876 + 1;
  • 1 953 339 865 254 103 517 794 921 876 ÷ 2 = 976 669 932 627 051 758 897 460 938 + 0;
  • 976 669 932 627 051 758 897 460 938 ÷ 2 = 488 334 966 313 525 879 448 730 469 + 0;
  • 488 334 966 313 525 879 448 730 469 ÷ 2 = 244 167 483 156 762 939 724 365 234 + 1;
  • 244 167 483 156 762 939 724 365 234 ÷ 2 = 122 083 741 578 381 469 862 182 617 + 0;
  • 122 083 741 578 381 469 862 182 617 ÷ 2 = 61 041 870 789 190 734 931 091 308 + 1;
  • 61 041 870 789 190 734 931 091 308 ÷ 2 = 30 520 935 394 595 367 465 545 654 + 0;
  • 30 520 935 394 595 367 465 545 654 ÷ 2 = 15 260 467 697 297 683 732 772 827 + 0;
  • 15 260 467 697 297 683 732 772 827 ÷ 2 = 7 630 233 848 648 841 866 386 413 + 1;
  • 7 630 233 848 648 841 866 386 413 ÷ 2 = 3 815 116 924 324 420 933 193 206 + 1;
  • 3 815 116 924 324 420 933 193 206 ÷ 2 = 1 907 558 462 162 210 466 596 603 + 0;
  • 1 907 558 462 162 210 466 596 603 ÷ 2 = 953 779 231 081 105 233 298 301 + 1;
  • 953 779 231 081 105 233 298 301 ÷ 2 = 476 889 615 540 552 616 649 150 + 1;
  • 476 889 615 540 552 616 649 150 ÷ 2 = 238 444 807 770 276 308 324 575 + 0;
  • 238 444 807 770 276 308 324 575 ÷ 2 = 119 222 403 885 138 154 162 287 + 1;
  • 119 222 403 885 138 154 162 287 ÷ 2 = 59 611 201 942 569 077 081 143 + 1;
  • 59 611 201 942 569 077 081 143 ÷ 2 = 29 805 600 971 284 538 540 571 + 1;
  • 29 805 600 971 284 538 540 571 ÷ 2 = 14 902 800 485 642 269 270 285 + 1;
  • 14 902 800 485 642 269 270 285 ÷ 2 = 7 451 400 242 821 134 635 142 + 1;
  • 7 451 400 242 821 134 635 142 ÷ 2 = 3 725 700 121 410 567 317 571 + 0;
  • 3 725 700 121 410 567 317 571 ÷ 2 = 1 862 850 060 705 283 658 785 + 1;
  • 1 862 850 060 705 283 658 785 ÷ 2 = 931 425 030 352 641 829 392 + 1;
  • 931 425 030 352 641 829 392 ÷ 2 = 465 712 515 176 320 914 696 + 0;
  • 465 712 515 176 320 914 696 ÷ 2 = 232 856 257 588 160 457 348 + 0;
  • 232 856 257 588 160 457 348 ÷ 2 = 116 428 128 794 080 228 674 + 0;
  • 116 428 128 794 080 228 674 ÷ 2 = 58 214 064 397 040 114 337 + 0;
  • 58 214 064 397 040 114 337 ÷ 2 = 29 107 032 198 520 057 168 + 1;
  • 29 107 032 198 520 057 168 ÷ 2 = 14 553 516 099 260 028 584 + 0;
  • 14 553 516 099 260 028 584 ÷ 2 = 7 276 758 049 630 014 292 + 0;
  • 7 276 758 049 630 014 292 ÷ 2 = 3 638 379 024 815 007 146 + 0;
  • 3 638 379 024 815 007 146 ÷ 2 = 1 819 189 512 407 503 573 + 0;
  • 1 819 189 512 407 503 573 ÷ 2 = 909 594 756 203 751 786 + 1;
  • 909 594 756 203 751 786 ÷ 2 = 454 797 378 101 875 893 + 0;
  • 454 797 378 101 875 893 ÷ 2 = 227 398 689 050 937 946 + 1;
  • 227 398 689 050 937 946 ÷ 2 = 113 699 344 525 468 973 + 0;
  • 113 699 344 525 468 973 ÷ 2 = 56 849 672 262 734 486 + 1;
  • 56 849 672 262 734 486 ÷ 2 = 28 424 836 131 367 243 + 0;
  • 28 424 836 131 367 243 ÷ 2 = 14 212 418 065 683 621 + 1;
  • 14 212 418 065 683 621 ÷ 2 = 7 106 209 032 841 810 + 1;
  • 7 106 209 032 841 810 ÷ 2 = 3 553 104 516 420 905 + 0;
  • 3 553 104 516 420 905 ÷ 2 = 1 776 552 258 210 452 + 1;
  • 1 776 552 258 210 452 ÷ 2 = 888 276 129 105 226 + 0;
  • 888 276 129 105 226 ÷ 2 = 444 138 064 552 613 + 0;
  • 444 138 064 552 613 ÷ 2 = 222 069 032 276 306 + 1;
  • 222 069 032 276 306 ÷ 2 = 111 034 516 138 153 + 0;
  • 111 034 516 138 153 ÷ 2 = 55 517 258 069 076 + 1;
  • 55 517 258 069 076 ÷ 2 = 27 758 629 034 538 + 0;
  • 27 758 629 034 538 ÷ 2 = 13 879 314 517 269 + 0;
  • 13 879 314 517 269 ÷ 2 = 6 939 657 258 634 + 1;
  • 6 939 657 258 634 ÷ 2 = 3 469 828 629 317 + 0;
  • 3 469 828 629 317 ÷ 2 = 1 734 914 314 658 + 1;
  • 1 734 914 314 658 ÷ 2 = 867 457 157 329 + 0;
  • 867 457 157 329 ÷ 2 = 433 728 578 664 + 1;
  • 433 728 578 664 ÷ 2 = 216 864 289 332 + 0;
  • 216 864 289 332 ÷ 2 = 108 432 144 666 + 0;
  • 108 432 144 666 ÷ 2 = 54 216 072 333 + 0;
  • 54 216 072 333 ÷ 2 = 27 108 036 166 + 1;
  • 27 108 036 166 ÷ 2 = 13 554 018 083 + 0;
  • 13 554 018 083 ÷ 2 = 6 777 009 041 + 1;
  • 6 777 009 041 ÷ 2 = 3 388 504 520 + 1;
  • 3 388 504 520 ÷ 2 = 1 694 252 260 + 0;
  • 1 694 252 260 ÷ 2 = 847 126 130 + 0;
  • 847 126 130 ÷ 2 = 423 563 065 + 0;
  • 423 563 065 ÷ 2 = 211 781 532 + 1;
  • 211 781 532 ÷ 2 = 105 890 766 + 0;
  • 105 890 766 ÷ 2 = 52 945 383 + 0;
  • 52 945 383 ÷ 2 = 26 472 691 + 1;
  • 26 472 691 ÷ 2 = 13 236 345 + 1;
  • 13 236 345 ÷ 2 = 6 618 172 + 1;
  • 6 618 172 ÷ 2 = 3 309 086 + 0;
  • 3 309 086 ÷ 2 = 1 654 543 + 0;
  • 1 654 543 ÷ 2 = 827 271 + 1;
  • 827 271 ÷ 2 = 413 635 + 1;
  • 413 635 ÷ 2 = 206 817 + 1;
  • 206 817 ÷ 2 = 103 408 + 1;
  • 103 408 ÷ 2 = 51 704 + 0;
  • 51 704 ÷ 2 = 25 852 + 0;
  • 25 852 ÷ 2 = 12 926 + 0;
  • 12 926 ÷ 2 = 6 463 + 0;
  • 6 463 ÷ 2 = 3 231 + 1;
  • 3 231 ÷ 2 = 1 615 + 1;
  • 1 615 ÷ 2 = 807 + 1;
  • 807 ÷ 2 = 403 + 1;
  • 403 ÷ 2 = 201 + 1;
  • 201 ÷ 2 = 100 + 1;
  • 100 ÷ 2 = 50 + 0;
  • 50 ÷ 2 = 25 + 0;
  • 25 ÷ 2 = 12 + 1;
  • 12 ÷ 2 = 6 + 0;
  • 6 ÷ 2 = 3 + 0;
  • 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.

1 000 110 011 010 101 001 111 000 000 877(10) =


1100 1001 1111 1000 0111 1001 1100 1000 1101 0001 0101 0010 1001 0110 1010 1000 0100 0011 0111 1101 1011 0010 1001 0110 1101(2)


3. Normalize the binary representation of the number.

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


1 000 110 011 010 101 001 111 000 000 877(10) =


1100 1001 1111 1000 0111 1001 1100 1000 1101 0001 0101 0010 1001 0110 1010 1000 0100 0011 0111 1101 1011 0010 1001 0110 1101(2) =


1100 1001 1111 1000 0111 1001 1100 1000 1101 0001 0101 0010 1001 0110 1010 1000 0100 0011 0111 1101 1011 0010 1001 0110 1101(2) × 20 =


1.1001 0011 1111 0000 1111 0011 1001 0001 1010 0010 1010 0101 0010 1101 0101 0000 1000 0110 1111 1011 0110 0101 0010 1101 101(2) × 299


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


Mantissa (not normalized):
1.1001 0011 1111 0000 1111 0011 1001 0001 1010 0010 1010 0101 0010 1101 0101 0000 1000 0110 1111 1011 0110 0101 0010 1101 101


5. Adjust the exponent.

Use the 8 bit excess/bias notation:


Exponent (adjusted) =


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


99 + 2(8-1) - 1 =


(99 + 127)(10) =


226(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;
  • 226 ÷ 2 = 113 + 0;
  • 113 ÷ 2 = 56 + 1;
  • 56 ÷ 2 = 28 + 0;
  • 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) =


226(10) =


1110 0010(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. 100 1001 1111 1000 0111 1001 1100 1000 1101 0001 0101 0010 1001 0110 1010 1000 0100 0011 0111 1101 1011 0010 1001 0110 1101 =


100 1001 1111 1000 0111 1001


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 0010


Mantissa (23 bits) =
100 1001 1111 1000 0111 1001


Decimal number 1 000 110 011 010 101 001 111 000 000 877 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1110 0010 - 100 1001 1111 1000 0111 1001

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