6.283 185 307 179 586 476 913 8 Converted to 64 Bit Double Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 6.283 185 307 179 586 476 913 8(10) to 64 bit double precision IEEE 754 binary floating point representation standard (1 bit for sign, 11 bits for exponent, 52 bits for mantissa)

What are the steps to convert decimal number
6.283 185 307 179 586 476 913 8(10) to 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: 6.
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;
  • 6 ÷ 2 = 3 + 0;
  • 3 ÷ 2 = 1 + 1;
  • 1 ÷ 2 = 0 + 1;

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.

6(10) =


110(2)


3. Convert to binary (base 2) the fractional part: 0.283 185 307 179 586 476 913 8.

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.283 185 307 179 586 476 913 8 × 2 = 0 + 0.566 370 614 359 172 953 827 6;
  • 2) 0.566 370 614 359 172 953 827 6 × 2 = 1 + 0.132 741 228 718 345 907 655 2;
  • 3) 0.132 741 228 718 345 907 655 2 × 2 = 0 + 0.265 482 457 436 691 815 310 4;
  • 4) 0.265 482 457 436 691 815 310 4 × 2 = 0 + 0.530 964 914 873 383 630 620 8;
  • 5) 0.530 964 914 873 383 630 620 8 × 2 = 1 + 0.061 929 829 746 767 261 241 6;
  • 6) 0.061 929 829 746 767 261 241 6 × 2 = 0 + 0.123 859 659 493 534 522 483 2;
  • 7) 0.123 859 659 493 534 522 483 2 × 2 = 0 + 0.247 719 318 987 069 044 966 4;
  • 8) 0.247 719 318 987 069 044 966 4 × 2 = 0 + 0.495 438 637 974 138 089 932 8;
  • 9) 0.495 438 637 974 138 089 932 8 × 2 = 0 + 0.990 877 275 948 276 179 865 6;
  • 10) 0.990 877 275 948 276 179 865 6 × 2 = 1 + 0.981 754 551 896 552 359 731 2;
  • 11) 0.981 754 551 896 552 359 731 2 × 2 = 1 + 0.963 509 103 793 104 719 462 4;
  • 12) 0.963 509 103 793 104 719 462 4 × 2 = 1 + 0.927 018 207 586 209 438 924 8;
  • 13) 0.927 018 207 586 209 438 924 8 × 2 = 1 + 0.854 036 415 172 418 877 849 6;
  • 14) 0.854 036 415 172 418 877 849 6 × 2 = 1 + 0.708 072 830 344 837 755 699 2;
  • 15) 0.708 072 830 344 837 755 699 2 × 2 = 1 + 0.416 145 660 689 675 511 398 4;
  • 16) 0.416 145 660 689 675 511 398 4 × 2 = 0 + 0.832 291 321 379 351 022 796 8;
  • 17) 0.832 291 321 379 351 022 796 8 × 2 = 1 + 0.664 582 642 758 702 045 593 6;
  • 18) 0.664 582 642 758 702 045 593 6 × 2 = 1 + 0.329 165 285 517 404 091 187 2;
  • 19) 0.329 165 285 517 404 091 187 2 × 2 = 0 + 0.658 330 571 034 808 182 374 4;
  • 20) 0.658 330 571 034 808 182 374 4 × 2 = 1 + 0.316 661 142 069 616 364 748 8;
  • 21) 0.316 661 142 069 616 364 748 8 × 2 = 0 + 0.633 322 284 139 232 729 497 6;
  • 22) 0.633 322 284 139 232 729 497 6 × 2 = 1 + 0.266 644 568 278 465 458 995 2;
  • 23) 0.266 644 568 278 465 458 995 2 × 2 = 0 + 0.533 289 136 556 930 917 990 4;
  • 24) 0.533 289 136 556 930 917 990 4 × 2 = 1 + 0.066 578 273 113 861 835 980 8;
  • 25) 0.066 578 273 113 861 835 980 8 × 2 = 0 + 0.133 156 546 227 723 671 961 6;
  • 26) 0.133 156 546 227 723 671 961 6 × 2 = 0 + 0.266 313 092 455 447 343 923 2;
  • 27) 0.266 313 092 455 447 343 923 2 × 2 = 0 + 0.532 626 184 910 894 687 846 4;
  • 28) 0.532 626 184 910 894 687 846 4 × 2 = 1 + 0.065 252 369 821 789 375 692 8;
  • 29) 0.065 252 369 821 789 375 692 8 × 2 = 0 + 0.130 504 739 643 578 751 385 6;
  • 30) 0.130 504 739 643 578 751 385 6 × 2 = 0 + 0.261 009 479 287 157 502 771 2;
  • 31) 0.261 009 479 287 157 502 771 2 × 2 = 0 + 0.522 018 958 574 315 005 542 4;
  • 32) 0.522 018 958 574 315 005 542 4 × 2 = 1 + 0.044 037 917 148 630 011 084 8;
  • 33) 0.044 037 917 148 630 011 084 8 × 2 = 0 + 0.088 075 834 297 260 022 169 6;
  • 34) 0.088 075 834 297 260 022 169 6 × 2 = 0 + 0.176 151 668 594 520 044 339 2;
  • 35) 0.176 151 668 594 520 044 339 2 × 2 = 0 + 0.352 303 337 189 040 088 678 4;
  • 36) 0.352 303 337 189 040 088 678 4 × 2 = 0 + 0.704 606 674 378 080 177 356 8;
  • 37) 0.704 606 674 378 080 177 356 8 × 2 = 1 + 0.409 213 348 756 160 354 713 6;
  • 38) 0.409 213 348 756 160 354 713 6 × 2 = 0 + 0.818 426 697 512 320 709 427 2;
  • 39) 0.818 426 697 512 320 709 427 2 × 2 = 1 + 0.636 853 395 024 641 418 854 4;
  • 40) 0.636 853 395 024 641 418 854 4 × 2 = 1 + 0.273 706 790 049 282 837 708 8;
  • 41) 0.273 706 790 049 282 837 708 8 × 2 = 0 + 0.547 413 580 098 565 675 417 6;
  • 42) 0.547 413 580 098 565 675 417 6 × 2 = 1 + 0.094 827 160 197 131 350 835 2;
  • 43) 0.094 827 160 197 131 350 835 2 × 2 = 0 + 0.189 654 320 394 262 701 670 4;
  • 44) 0.189 654 320 394 262 701 670 4 × 2 = 0 + 0.379 308 640 788 525 403 340 8;
  • 45) 0.379 308 640 788 525 403 340 8 × 2 = 0 + 0.758 617 281 577 050 806 681 6;
  • 46) 0.758 617 281 577 050 806 681 6 × 2 = 1 + 0.517 234 563 154 101 613 363 2;
  • 47) 0.517 234 563 154 101 613 363 2 × 2 = 1 + 0.034 469 126 308 203 226 726 4;
  • 48) 0.034 469 126 308 203 226 726 4 × 2 = 0 + 0.068 938 252 616 406 453 452 8;
  • 49) 0.068 938 252 616 406 453 452 8 × 2 = 0 + 0.137 876 505 232 812 906 905 6;
  • 50) 0.137 876 505 232 812 906 905 6 × 2 = 0 + 0.275 753 010 465 625 813 811 2;
  • 51) 0.275 753 010 465 625 813 811 2 × 2 = 0 + 0.551 506 020 931 251 627 622 4;
  • 52) 0.551 506 020 931 251 627 622 4 × 2 = 1 + 0.103 012 041 862 503 255 244 8;
  • 53) 0.103 012 041 862 503 255 244 8 × 2 = 0 + 0.206 024 083 725 006 510 489 6;

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 - the converted number we get in the end will be just a very good approximation of the initial one).


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.283 185 307 179 586 476 913 8(10) =


0.0100 1000 0111 1110 1101 0101 0001 0001 0000 1011 0100 0110 0001 0(2)

5. Positive number before normalization:

6.283 185 307 179 586 476 913 8(10) =


110.0100 1000 0111 1110 1101 0101 0001 0001 0000 1011 0100 0110 0001 0(2)

6. Normalize the binary representation of the number.

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


6.283 185 307 179 586 476 913 8(10) =


110.0100 1000 0111 1110 1101 0101 0001 0001 0000 1011 0100 0110 0001 0(2) =


110.0100 1000 0111 1110 1101 0101 0001 0001 0000 1011 0100 0110 0001 0(2) × 20 =


1.1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000 010(2) × 22


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


Mantissa (not normalized):
1.1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000 010


8. Adjust the exponent.

Use the 11 bit excess/bias notation:


Exponent (adjusted) =


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


2 + 2(11-1) - 1 =


(2 + 1 023)(10) =


1 025(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 025 ÷ 2 = 512 + 1;
  • 512 ÷ 2 = 256 + 0;
  • 256 ÷ 2 = 128 + 0;
  • 128 ÷ 2 = 64 + 0;
  • 64 ÷ 2 = 32 + 0;
  • 32 ÷ 2 = 16 + 0;
  • 16 ÷ 2 = 8 + 0;
  • 8 ÷ 2 = 4 + 0;
  • 4 ÷ 2 = 2 + 0;
  • 2 ÷ 2 = 1 + 0;
  • 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) =


1025(10) =


100 0000 0001(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, 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. 1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000 010 =


1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000


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) =
100 0000 0001


Mantissa (52 bits) =
1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000


Decimal number 6.283 185 307 179 586 476 913 8 converted to 64 bit double precision IEEE 754 binary floating point representation:

0 - 100 0000 0001 - 1001 0010 0001 1111 1011 0101 0100 0100 0100 0010 1101 0001 1000


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