1 000 101 110 001 011 001 099 999 998 690 Converted to 32 Bit Single Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 1 000 101 110 001 011 001 099 999 998 690(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 101 110 001 011 001 099 999 998 690(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 101 110 001 011 001 099 999 998 690 ÷ 2 = 500 050 555 000 505 500 549 999 999 345 + 0;
  • 500 050 555 000 505 500 549 999 999 345 ÷ 2 = 250 025 277 500 252 750 274 999 999 672 + 1;
  • 250 025 277 500 252 750 274 999 999 672 ÷ 2 = 125 012 638 750 126 375 137 499 999 836 + 0;
  • 125 012 638 750 126 375 137 499 999 836 ÷ 2 = 62 506 319 375 063 187 568 749 999 918 + 0;
  • 62 506 319 375 063 187 568 749 999 918 ÷ 2 = 31 253 159 687 531 593 784 374 999 959 + 0;
  • 31 253 159 687 531 593 784 374 999 959 ÷ 2 = 15 626 579 843 765 796 892 187 499 979 + 1;
  • 15 626 579 843 765 796 892 187 499 979 ÷ 2 = 7 813 289 921 882 898 446 093 749 989 + 1;
  • 7 813 289 921 882 898 446 093 749 989 ÷ 2 = 3 906 644 960 941 449 223 046 874 994 + 1;
  • 3 906 644 960 941 449 223 046 874 994 ÷ 2 = 1 953 322 480 470 724 611 523 437 497 + 0;
  • 1 953 322 480 470 724 611 523 437 497 ÷ 2 = 976 661 240 235 362 305 761 718 748 + 1;
  • 976 661 240 235 362 305 761 718 748 ÷ 2 = 488 330 620 117 681 152 880 859 374 + 0;
  • 488 330 620 117 681 152 880 859 374 ÷ 2 = 244 165 310 058 840 576 440 429 687 + 0;
  • 244 165 310 058 840 576 440 429 687 ÷ 2 = 122 082 655 029 420 288 220 214 843 + 1;
  • 122 082 655 029 420 288 220 214 843 ÷ 2 = 61 041 327 514 710 144 110 107 421 + 1;
  • 61 041 327 514 710 144 110 107 421 ÷ 2 = 30 520 663 757 355 072 055 053 710 + 1;
  • 30 520 663 757 355 072 055 053 710 ÷ 2 = 15 260 331 878 677 536 027 526 855 + 0;
  • 15 260 331 878 677 536 027 526 855 ÷ 2 = 7 630 165 939 338 768 013 763 427 + 1;
  • 7 630 165 939 338 768 013 763 427 ÷ 2 = 3 815 082 969 669 384 006 881 713 + 1;
  • 3 815 082 969 669 384 006 881 713 ÷ 2 = 1 907 541 484 834 692 003 440 856 + 1;
  • 1 907 541 484 834 692 003 440 856 ÷ 2 = 953 770 742 417 346 001 720 428 + 0;
  • 953 770 742 417 346 001 720 428 ÷ 2 = 476 885 371 208 673 000 860 214 + 0;
  • 476 885 371 208 673 000 860 214 ÷ 2 = 238 442 685 604 336 500 430 107 + 0;
  • 238 442 685 604 336 500 430 107 ÷ 2 = 119 221 342 802 168 250 215 053 + 1;
  • 119 221 342 802 168 250 215 053 ÷ 2 = 59 610 671 401 084 125 107 526 + 1;
  • 59 610 671 401 084 125 107 526 ÷ 2 = 29 805 335 700 542 062 553 763 + 0;
  • 29 805 335 700 542 062 553 763 ÷ 2 = 14 902 667 850 271 031 276 881 + 1;
  • 14 902 667 850 271 031 276 881 ÷ 2 = 7 451 333 925 135 515 638 440 + 1;
  • 7 451 333 925 135 515 638 440 ÷ 2 = 3 725 666 962 567 757 819 220 + 0;
  • 3 725 666 962 567 757 819 220 ÷ 2 = 1 862 833 481 283 878 909 610 + 0;
  • 1 862 833 481 283 878 909 610 ÷ 2 = 931 416 740 641 939 454 805 + 0;
  • 931 416 740 641 939 454 805 ÷ 2 = 465 708 370 320 969 727 402 + 1;
  • 465 708 370 320 969 727 402 ÷ 2 = 232 854 185 160 484 863 701 + 0;
  • 232 854 185 160 484 863 701 ÷ 2 = 116 427 092 580 242 431 850 + 1;
  • 116 427 092 580 242 431 850 ÷ 2 = 58 213 546 290 121 215 925 + 0;
  • 58 213 546 290 121 215 925 ÷ 2 = 29 106 773 145 060 607 962 + 1;
  • 29 106 773 145 060 607 962 ÷ 2 = 14 553 386 572 530 303 981 + 0;
  • 14 553 386 572 530 303 981 ÷ 2 = 7 276 693 286 265 151 990 + 1;
  • 7 276 693 286 265 151 990 ÷ 2 = 3 638 346 643 132 575 995 + 0;
  • 3 638 346 643 132 575 995 ÷ 2 = 1 819 173 321 566 287 997 + 1;
  • 1 819 173 321 566 287 997 ÷ 2 = 909 586 660 783 143 998 + 1;
  • 909 586 660 783 143 998 ÷ 2 = 454 793 330 391 571 999 + 0;
  • 454 793 330 391 571 999 ÷ 2 = 227 396 665 195 785 999 + 1;
  • 227 396 665 195 785 999 ÷ 2 = 113 698 332 597 892 999 + 1;
  • 113 698 332 597 892 999 ÷ 2 = 56 849 166 298 946 499 + 1;
  • 56 849 166 298 946 499 ÷ 2 = 28 424 583 149 473 249 + 1;
  • 28 424 583 149 473 249 ÷ 2 = 14 212 291 574 736 624 + 1;
  • 14 212 291 574 736 624 ÷ 2 = 7 106 145 787 368 312 + 0;
  • 7 106 145 787 368 312 ÷ 2 = 3 553 072 893 684 156 + 0;
  • 3 553 072 893 684 156 ÷ 2 = 1 776 536 446 842 078 + 0;
  • 1 776 536 446 842 078 ÷ 2 = 888 268 223 421 039 + 0;
  • 888 268 223 421 039 ÷ 2 = 444 134 111 710 519 + 1;
  • 444 134 111 710 519 ÷ 2 = 222 067 055 855 259 + 1;
  • 222 067 055 855 259 ÷ 2 = 111 033 527 927 629 + 1;
  • 111 033 527 927 629 ÷ 2 = 55 516 763 963 814 + 1;
  • 55 516 763 963 814 ÷ 2 = 27 758 381 981 907 + 0;
  • 27 758 381 981 907 ÷ 2 = 13 879 190 990 953 + 1;
  • 13 879 190 990 953 ÷ 2 = 6 939 595 495 476 + 1;
  • 6 939 595 495 476 ÷ 2 = 3 469 797 747 738 + 0;
  • 3 469 797 747 738 ÷ 2 = 1 734 898 873 869 + 0;
  • 1 734 898 873 869 ÷ 2 = 867 449 436 934 + 1;
  • 867 449 436 934 ÷ 2 = 433 724 718 467 + 0;
  • 433 724 718 467 ÷ 2 = 216 862 359 233 + 1;
  • 216 862 359 233 ÷ 2 = 108 431 179 616 + 1;
  • 108 431 179 616 ÷ 2 = 54 215 589 808 + 0;
  • 54 215 589 808 ÷ 2 = 27 107 794 904 + 0;
  • 27 107 794 904 ÷ 2 = 13 553 897 452 + 0;
  • 13 553 897 452 ÷ 2 = 6 776 948 726 + 0;
  • 6 776 948 726 ÷ 2 = 3 388 474 363 + 0;
  • 3 388 474 363 ÷ 2 = 1 694 237 181 + 1;
  • 1 694 237 181 ÷ 2 = 847 118 590 + 1;
  • 847 118 590 ÷ 2 = 423 559 295 + 0;
  • 423 559 295 ÷ 2 = 211 779 647 + 1;
  • 211 779 647 ÷ 2 = 105 889 823 + 1;
  • 105 889 823 ÷ 2 = 52 944 911 + 1;
  • 52 944 911 ÷ 2 = 26 472 455 + 1;
  • 26 472 455 ÷ 2 = 13 236 227 + 1;
  • 13 236 227 ÷ 2 = 6 618 113 + 1;
  • 6 618 113 ÷ 2 = 3 309 056 + 1;
  • 3 309 056 ÷ 2 = 1 654 528 + 0;
  • 1 654 528 ÷ 2 = 827 264 + 0;
  • 827 264 ÷ 2 = 413 632 + 0;
  • 413 632 ÷ 2 = 206 816 + 0;
  • 206 816 ÷ 2 = 103 408 + 0;
  • 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 101 110 001 011 001 099 999 998 690(10) =


1100 1001 1111 1000 0000 0011 1111 1011 0000 0110 1001 1011 1100 0011 1110 1101 0101 0100 0110 1100 0111 0111 0010 1110 0010(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 101 110 001 011 001 099 999 998 690(10) =


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


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


1.1001 0011 1111 0000 0000 0111 1111 0110 0000 1101 0011 0111 1000 0111 1101 1010 1010 1000 1101 1000 1110 1110 0101 1100 010(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 0000 0111 1111 0110 0000 1101 0011 0111 1000 0111 1101 1010 1010 1000 1101 1000 1110 1110 0101 1100 010


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 0000 0011 1111 1011 0000 0110 1001 1011 1100 0011 1110 1101 0101 0100 0110 1100 0111 0111 0010 1110 0010 =


100 1001 1111 1000 0000 0011


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 0000 0011


Decimal number 1 000 101 110 001 011 001 099 999 998 690 converted to 32 bit single precision IEEE 754 binary floating point representation:

0 - 1110 0010 - 100 1001 1111 1000 0000 0011


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