64bit IEEE 754: Decimal ↗ Double Precision Floating Point Binary: 0.101 010 101 010 101 010 101 010 108 Convert the Number to 64 Bit Double Precision IEEE 754 Binary Floating Point Representation Standard, From a Base Ten Decimal System Number

Number 0.101 010 101 010 101 010 101 010 108(10) converted and written in 64 bit double precision IEEE 754 binary floating point representation (1 bit for sign, 11 bits for exponent, 52 bits for mantissa)

1. First, convert to binary (in base 2) the integer part: 0.
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;
  • 0 ÷ 2 = 0 + 0;

2. Construct the base 2 representation of the integer part of the number.

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


0(10) =


0(2)


3. Convert to binary (base 2) the fractional part: 0.101 010 101 010 101 010 101 010 108.

Multiply it repeatedly by 2.


Keep track of each integer part of the results.


Stop when we get a fractional part that is equal to zero.


  • #) multiplying = integer + fractional part;
  • 1) 0.101 010 101 010 101 010 101 010 108 × 2 = 0 + 0.202 020 202 020 202 020 202 020 216;
  • 2) 0.202 020 202 020 202 020 202 020 216 × 2 = 0 + 0.404 040 404 040 404 040 404 040 432;
  • 3) 0.404 040 404 040 404 040 404 040 432 × 2 = 0 + 0.808 080 808 080 808 080 808 080 864;
  • 4) 0.808 080 808 080 808 080 808 080 864 × 2 = 1 + 0.616 161 616 161 616 161 616 161 728;
  • 5) 0.616 161 616 161 616 161 616 161 728 × 2 = 1 + 0.232 323 232 323 232 323 232 323 456;
  • 6) 0.232 323 232 323 232 323 232 323 456 × 2 = 0 + 0.464 646 464 646 464 646 464 646 912;
  • 7) 0.464 646 464 646 464 646 464 646 912 × 2 = 0 + 0.929 292 929 292 929 292 929 293 824;
  • 8) 0.929 292 929 292 929 292 929 293 824 × 2 = 1 + 0.858 585 858 585 858 585 858 587 648;
  • 9) 0.858 585 858 585 858 585 858 587 648 × 2 = 1 + 0.717 171 717 171 717 171 717 175 296;
  • 10) 0.717 171 717 171 717 171 717 175 296 × 2 = 1 + 0.434 343 434 343 434 343 434 350 592;
  • 11) 0.434 343 434 343 434 343 434 350 592 × 2 = 0 + 0.868 686 868 686 868 686 868 701 184;
  • 12) 0.868 686 868 686 868 686 868 701 184 × 2 = 1 + 0.737 373 737 373 737 373 737 402 368;
  • 13) 0.737 373 737 373 737 373 737 402 368 × 2 = 1 + 0.474 747 474 747 474 747 474 804 736;
  • 14) 0.474 747 474 747 474 747 474 804 736 × 2 = 0 + 0.949 494 949 494 949 494 949 609 472;
  • 15) 0.949 494 949 494 949 494 949 609 472 × 2 = 1 + 0.898 989 898 989 898 989 899 218 944;
  • 16) 0.898 989 898 989 898 989 899 218 944 × 2 = 1 + 0.797 979 797 979 797 979 798 437 888;
  • 17) 0.797 979 797 979 797 979 798 437 888 × 2 = 1 + 0.595 959 595 959 595 959 596 875 776;
  • 18) 0.595 959 595 959 595 959 596 875 776 × 2 = 1 + 0.191 919 191 919 191 919 193 751 552;
  • 19) 0.191 919 191 919 191 919 193 751 552 × 2 = 0 + 0.383 838 383 838 383 838 387 503 104;
  • 20) 0.383 838 383 838 383 838 387 503 104 × 2 = 0 + 0.767 676 767 676 767 676 775 006 208;
  • 21) 0.767 676 767 676 767 676 775 006 208 × 2 = 1 + 0.535 353 535 353 535 353 550 012 416;
  • 22) 0.535 353 535 353 535 353 550 012 416 × 2 = 1 + 0.070 707 070 707 070 707 100 024 832;
  • 23) 0.070 707 070 707 070 707 100 024 832 × 2 = 0 + 0.141 414 141 414 141 414 200 049 664;
  • 24) 0.141 414 141 414 141 414 200 049 664 × 2 = 0 + 0.282 828 282 828 282 828 400 099 328;
  • 25) 0.282 828 282 828 282 828 400 099 328 × 2 = 0 + 0.565 656 565 656 565 656 800 198 656;
  • 26) 0.565 656 565 656 565 656 800 198 656 × 2 = 1 + 0.131 313 131 313 131 313 600 397 312;
  • 27) 0.131 313 131 313 131 313 600 397 312 × 2 = 0 + 0.262 626 262 626 262 627 200 794 624;
  • 28) 0.262 626 262 626 262 627 200 794 624 × 2 = 0 + 0.525 252 525 252 525 254 401 589 248;
  • 29) 0.525 252 525 252 525 254 401 589 248 × 2 = 1 + 0.050 505 050 505 050 508 803 178 496;
  • 30) 0.050 505 050 505 050 508 803 178 496 × 2 = 0 + 0.101 010 101 010 101 017 606 356 992;
  • 31) 0.101 010 101 010 101 017 606 356 992 × 2 = 0 + 0.202 020 202 020 202 035 212 713 984;
  • 32) 0.202 020 202 020 202 035 212 713 984 × 2 = 0 + 0.404 040 404 040 404 070 425 427 968;
  • 33) 0.404 040 404 040 404 070 425 427 968 × 2 = 0 + 0.808 080 808 080 808 140 850 855 936;
  • 34) 0.808 080 808 080 808 140 850 855 936 × 2 = 1 + 0.616 161 616 161 616 281 701 711 872;
  • 35) 0.616 161 616 161 616 281 701 711 872 × 2 = 1 + 0.232 323 232 323 232 563 403 423 744;
  • 36) 0.232 323 232 323 232 563 403 423 744 × 2 = 0 + 0.464 646 464 646 465 126 806 847 488;
  • 37) 0.464 646 464 646 465 126 806 847 488 × 2 = 0 + 0.929 292 929 292 930 253 613 694 976;
  • 38) 0.929 292 929 292 930 253 613 694 976 × 2 = 1 + 0.858 585 858 585 860 507 227 389 952;
  • 39) 0.858 585 858 585 860 507 227 389 952 × 2 = 1 + 0.717 171 717 171 721 014 454 779 904;
  • 40) 0.717 171 717 171 721 014 454 779 904 × 2 = 1 + 0.434 343 434 343 442 028 909 559 808;
  • 41) 0.434 343 434 343 442 028 909 559 808 × 2 = 0 + 0.868 686 868 686 884 057 819 119 616;
  • 42) 0.868 686 868 686 884 057 819 119 616 × 2 = 1 + 0.737 373 737 373 768 115 638 239 232;
  • 43) 0.737 373 737 373 768 115 638 239 232 × 2 = 1 + 0.474 747 474 747 536 231 276 478 464;
  • 44) 0.474 747 474 747 536 231 276 478 464 × 2 = 0 + 0.949 494 949 495 072 462 552 956 928;
  • 45) 0.949 494 949 495 072 462 552 956 928 × 2 = 1 + 0.898 989 898 990 144 925 105 913 856;
  • 46) 0.898 989 898 990 144 925 105 913 856 × 2 = 1 + 0.797 979 797 980 289 850 211 827 712;
  • 47) 0.797 979 797 980 289 850 211 827 712 × 2 = 1 + 0.595 959 595 960 579 700 423 655 424;
  • 48) 0.595 959 595 960 579 700 423 655 424 × 2 = 1 + 0.191 919 191 921 159 400 847 310 848;
  • 49) 0.191 919 191 921 159 400 847 310 848 × 2 = 0 + 0.383 838 383 842 318 801 694 621 696;
  • 50) 0.383 838 383 842 318 801 694 621 696 × 2 = 0 + 0.767 676 767 684 637 603 389 243 392;
  • 51) 0.767 676 767 684 637 603 389 243 392 × 2 = 1 + 0.535 353 535 369 275 206 778 486 784;
  • 52) 0.535 353 535 369 275 206 778 486 784 × 2 = 1 + 0.070 707 070 738 550 413 556 973 568;
  • 53) 0.070 707 070 738 550 413 556 973 568 × 2 = 0 + 0.141 414 141 477 100 827 113 947 136;
  • 54) 0.141 414 141 477 100 827 113 947 136 × 2 = 0 + 0.282 828 282 954 201 654 227 894 272;
  • 55) 0.282 828 282 954 201 654 227 894 272 × 2 = 0 + 0.565 656 565 908 403 308 455 788 544;
  • 56) 0.565 656 565 908 403 308 455 788 544 × 2 = 1 + 0.131 313 131 816 806 616 911 577 088;

We didn't get any fractional part that was equal to zero. But we had enough iterations (over Mantissa limit) and at least one integer that was different from zero => FULL STOP (losing precision...)


4. Construct the base 2 representation of the fractional part of the number.

Take all the integer parts of the multiplying operations, starting from the top of the constructed list above:


0.101 010 101 010 101 010 101 010 108(10) =


0.0001 1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001(2)


5. Positive number before normalization:

0.101 010 101 010 101 010 101 010 108(10) =


0.0001 1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001(2)

6. Normalize the binary representation of the number.

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


0.101 010 101 010 101 010 101 010 108(10) =


0.0001 1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001(2) =


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


1.1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001(2) × 2-4


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

Sign 0 (a positive number)


Exponent (unadjusted): -4


Mantissa (not normalized):
1.1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001


8. Adjust the exponent.

Use the 11 bit excess/bias notation:


Exponent (adjusted) =


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


-4 + 2(11-1) - 1 =


(-4 + 1 023)(10) =


1 019(10)


9. Convert the adjusted exponent from the decimal (base 10) to 11 bit binary.

Use the same technique of repeatedly dividing by 2:


  • division = quotient + remainder;
  • 1 019 ÷ 2 = 509 + 1;
  • 509 ÷ 2 = 254 + 1;
  • 254 ÷ 2 = 127 + 0;
  • 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;

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

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


Exponent (adjusted) =


1019(10) =


011 1111 1011(2)


11. 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 52 bits, only if necessary (not the case here).


Mantissa (normalized) =


1. 1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001 =


1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001


12. The three elements that make up the number's 64 bit double precision IEEE 754 binary floating point representation:

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


Exponent (11 bits) =
011 1111 1011


Mantissa (52 bits) =
1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001


The base ten decimal number 0.101 010 101 010 101 010 101 010 108 converted and written in 64 bit double precision IEEE 754 binary floating point representation:
0 - 011 1111 1011 - 1001 1101 1011 1100 1100 0100 1000 0110 0111 0110 1111 0011 0001

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

Number -84 593 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:26 UTC (GMT)
Number 908 803 936.001 356 4 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:26 UTC (GMT)
Number 0.967 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:26 UTC (GMT)
Number -101 010 110 109 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:26 UTC (GMT)
Number 8.129 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:26 UTC (GMT)
Number -5 555.625 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:25 UTC (GMT)
Number 1 052 046 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:25 UTC (GMT)
Number 62 763 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:25 UTC (GMT)
Number 0.265 626 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:25 UTC (GMT)
Number -740 converted from decimal system (written in base ten) to 64 bit double precision IEEE 754 binary floating point representation standard May 19 17:25 UTC (GMT)
All base ten decimal numbers converted to 64 bit double precision IEEE 754 binary floating point

How to convert numbers from the decimal system (base ten) to 64 bit double precision IEEE 754 binary floating point standard

Follow the steps below to convert a base 10 decimal number to 64 bit double 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 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 from the previous 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 multiplying operations, starting from the top of the list constructed 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, shifting the decimal mark (the decimal point) "n" positions either to the left, or to the right, so that only one non zero digit remains to the left of the decimal mark.
  • 7. Adjust the exponent in 11 bit excess/bias notation and then convert it from decimal (base 10) to 11 bit binary, by using the same technique of repeatedly dividing by 2, as shown above:
    Exponent (adjusted) = Exponent (unadjusted) + 2(11-1) - 1
  • 8. Normalize mantissa, remove the leading (leftmost) bit, since it's allways '1' (and the decimal mark, if the case) and adjust its length to 52 bits, either by removing the excess bits from the right (losing precision...) or by adding extra bits set on '0' 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 -31.640 215 from the decimal system (base ten) to 64 bit double precision IEEE 754 binary floating point:

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

    |-31.640 215| = 31.640 215

  • 2. First convert the integer part, 31. Divide it repeatedly by 2, keeping track of each remainder, until we get a quotient that is equal to zero:
    • division = quotient + remainder;
    • 31 ÷ 2 = 15 + 1;
    • 15 ÷ 2 = 7 + 1;
    • 7 ÷ 2 = 3 + 1;
    • 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:

    31(10) = 1 1111(2)

  • 4. Then, convert the fractional part, 0.640 215. 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.640 215 × 2 = 1 + 0.280 43;
    • 2) 0.280 43 × 2 = 0 + 0.560 86;
    • 3) 0.560 86 × 2 = 1 + 0.121 72;
    • 4) 0.121 72 × 2 = 0 + 0.243 44;
    • 5) 0.243 44 × 2 = 0 + 0.486 88;
    • 6) 0.486 88 × 2 = 0 + 0.973 76;
    • 7) 0.973 76 × 2 = 1 + 0.947 52;
    • 8) 0.947 52 × 2 = 1 + 0.895 04;
    • 9) 0.895 04 × 2 = 1 + 0.790 08;
    • 10) 0.790 08 × 2 = 1 + 0.580 16;
    • 11) 0.580 16 × 2 = 1 + 0.160 32;
    • 12) 0.160 32 × 2 = 0 + 0.320 64;
    • 13) 0.320 64 × 2 = 0 + 0.641 28;
    • 14) 0.641 28 × 2 = 1 + 0.282 56;
    • 15) 0.282 56 × 2 = 0 + 0.565 12;
    • 16) 0.565 12 × 2 = 1 + 0.130 24;
    • 17) 0.130 24 × 2 = 0 + 0.260 48;
    • 18) 0.260 48 × 2 = 0 + 0.520 96;
    • 19) 0.520 96 × 2 = 1 + 0.041 92;
    • 20) 0.041 92 × 2 = 0 + 0.083 84;
    • 21) 0.083 84 × 2 = 0 + 0.167 68;
    • 22) 0.167 68 × 2 = 0 + 0.335 36;
    • 23) 0.335 36 × 2 = 0 + 0.670 72;
    • 24) 0.670 72 × 2 = 1 + 0.341 44;
    • 25) 0.341 44 × 2 = 0 + 0.682 88;
    • 26) 0.682 88 × 2 = 1 + 0.365 76;
    • 27) 0.365 76 × 2 = 0 + 0.731 52;
    • 28) 0.731 52 × 2 = 1 + 0.463 04;
    • 29) 0.463 04 × 2 = 0 + 0.926 08;
    • 30) 0.926 08 × 2 = 1 + 0.852 16;
    • 31) 0.852 16 × 2 = 1 + 0.704 32;
    • 32) 0.704 32 × 2 = 1 + 0.408 64;
    • 33) 0.408 64 × 2 = 0 + 0.817 28;
    • 34) 0.817 28 × 2 = 1 + 0.634 56;
    • 35) 0.634 56 × 2 = 1 + 0.269 12;
    • 36) 0.269 12 × 2 = 0 + 0.538 24;
    • 37) 0.538 24 × 2 = 1 + 0.076 48;
    • 38) 0.076 48 × 2 = 0 + 0.152 96;
    • 39) 0.152 96 × 2 = 0 + 0.305 92;
    • 40) 0.305 92 × 2 = 0 + 0.611 84;
    • 41) 0.611 84 × 2 = 1 + 0.223 68;
    • 42) 0.223 68 × 2 = 0 + 0.447 36;
    • 43) 0.447 36 × 2 = 0 + 0.894 72;
    • 44) 0.894 72 × 2 = 1 + 0.789 44;
    • 45) 0.789 44 × 2 = 1 + 0.578 88;
    • 46) 0.578 88 × 2 = 1 + 0.157 76;
    • 47) 0.157 76 × 2 = 0 + 0.315 52;
    • 48) 0.315 52 × 2 = 0 + 0.631 04;
    • 49) 0.631 04 × 2 = 1 + 0.262 08;
    • 50) 0.262 08 × 2 = 0 + 0.524 16;
    • 51) 0.524 16 × 2 = 1 + 0.048 32;
    • 52) 0.048 32 × 2 = 0 + 0.096 64;
    • 53) 0.096 64 × 2 = 0 + 0.193 28;
    • We didn't get any fractional part that was equal to zero. But we had enough iterations (over Mantissa limit = 52) 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.640 215(10) = 0.1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0(2)

  • 6. Summarizing - the positive number before normalization:

    31.640 215(10) = 1 1111.1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0(2)

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

    31.640 215(10) =
    1 1111.1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0(2) =
    1 1111.1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0(2) × 20 =
    1.1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0(2) × 24

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

    Sign: 1 (a negative number)

    Exponent (unadjusted): 4

    Mantissa (not-normalized): 1.1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0

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

    Exponent (adjusted) = Exponent (unadjusted) + 2(11-1) - 1 = (4 + 1023)(10) = 1027(10) =
    100 0000 0011(2)

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

    Mantissa (not-normalized): 1.1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0

    Mantissa (normalized): 1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100

  • Conclusion:

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

    Exponent (8 bits) = 100 0000 0011

    Mantissa (52 bits) = 1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100

  • Number -31.640 215, converted from decimal system (base 10) to 64 bit double precision IEEE 754 binary floating point =
    1 - 100 0000 0011 - 1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100