0.000 000 000 000 000 032 487 359 891 Converted to 64 Bit Double Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 0.000 000 000 000 000 032 487 359 891(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
0.000 000 000 000 000 032 487 359 891(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: 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.000 000 000 000 000 032 487 359 891.

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.000 000 000 000 000 032 487 359 891 × 2 = 0 + 0.000 000 000 000 000 064 974 719 782;
  • 2) 0.000 000 000 000 000 064 974 719 782 × 2 = 0 + 0.000 000 000 000 000 129 949 439 564;
  • 3) 0.000 000 000 000 000 129 949 439 564 × 2 = 0 + 0.000 000 000 000 000 259 898 879 128;
  • 4) 0.000 000 000 000 000 259 898 879 128 × 2 = 0 + 0.000 000 000 000 000 519 797 758 256;
  • 5) 0.000 000 000 000 000 519 797 758 256 × 2 = 0 + 0.000 000 000 000 001 039 595 516 512;
  • 6) 0.000 000 000 000 001 039 595 516 512 × 2 = 0 + 0.000 000 000 000 002 079 191 033 024;
  • 7) 0.000 000 000 000 002 079 191 033 024 × 2 = 0 + 0.000 000 000 000 004 158 382 066 048;
  • 8) 0.000 000 000 000 004 158 382 066 048 × 2 = 0 + 0.000 000 000 000 008 316 764 132 096;
  • 9) 0.000 000 000 000 008 316 764 132 096 × 2 = 0 + 0.000 000 000 000 016 633 528 264 192;
  • 10) 0.000 000 000 000 016 633 528 264 192 × 2 = 0 + 0.000 000 000 000 033 267 056 528 384;
  • 11) 0.000 000 000 000 033 267 056 528 384 × 2 = 0 + 0.000 000 000 000 066 534 113 056 768;
  • 12) 0.000 000 000 000 066 534 113 056 768 × 2 = 0 + 0.000 000 000 000 133 068 226 113 536;
  • 13) 0.000 000 000 000 133 068 226 113 536 × 2 = 0 + 0.000 000 000 000 266 136 452 227 072;
  • 14) 0.000 000 000 000 266 136 452 227 072 × 2 = 0 + 0.000 000 000 000 532 272 904 454 144;
  • 15) 0.000 000 000 000 532 272 904 454 144 × 2 = 0 + 0.000 000 000 001 064 545 808 908 288;
  • 16) 0.000 000 000 001 064 545 808 908 288 × 2 = 0 + 0.000 000 000 002 129 091 617 816 576;
  • 17) 0.000 000 000 002 129 091 617 816 576 × 2 = 0 + 0.000 000 000 004 258 183 235 633 152;
  • 18) 0.000 000 000 004 258 183 235 633 152 × 2 = 0 + 0.000 000 000 008 516 366 471 266 304;
  • 19) 0.000 000 000 008 516 366 471 266 304 × 2 = 0 + 0.000 000 000 017 032 732 942 532 608;
  • 20) 0.000 000 000 017 032 732 942 532 608 × 2 = 0 + 0.000 000 000 034 065 465 885 065 216;
  • 21) 0.000 000 000 034 065 465 885 065 216 × 2 = 0 + 0.000 000 000 068 130 931 770 130 432;
  • 22) 0.000 000 000 068 130 931 770 130 432 × 2 = 0 + 0.000 000 000 136 261 863 540 260 864;
  • 23) 0.000 000 000 136 261 863 540 260 864 × 2 = 0 + 0.000 000 000 272 523 727 080 521 728;
  • 24) 0.000 000 000 272 523 727 080 521 728 × 2 = 0 + 0.000 000 000 545 047 454 161 043 456;
  • 25) 0.000 000 000 545 047 454 161 043 456 × 2 = 0 + 0.000 000 001 090 094 908 322 086 912;
  • 26) 0.000 000 001 090 094 908 322 086 912 × 2 = 0 + 0.000 000 002 180 189 816 644 173 824;
  • 27) 0.000 000 002 180 189 816 644 173 824 × 2 = 0 + 0.000 000 004 360 379 633 288 347 648;
  • 28) 0.000 000 004 360 379 633 288 347 648 × 2 = 0 + 0.000 000 008 720 759 266 576 695 296;
  • 29) 0.000 000 008 720 759 266 576 695 296 × 2 = 0 + 0.000 000 017 441 518 533 153 390 592;
  • 30) 0.000 000 017 441 518 533 153 390 592 × 2 = 0 + 0.000 000 034 883 037 066 306 781 184;
  • 31) 0.000 000 034 883 037 066 306 781 184 × 2 = 0 + 0.000 000 069 766 074 132 613 562 368;
  • 32) 0.000 000 069 766 074 132 613 562 368 × 2 = 0 + 0.000 000 139 532 148 265 227 124 736;
  • 33) 0.000 000 139 532 148 265 227 124 736 × 2 = 0 + 0.000 000 279 064 296 530 454 249 472;
  • 34) 0.000 000 279 064 296 530 454 249 472 × 2 = 0 + 0.000 000 558 128 593 060 908 498 944;
  • 35) 0.000 000 558 128 593 060 908 498 944 × 2 = 0 + 0.000 001 116 257 186 121 816 997 888;
  • 36) 0.000 001 116 257 186 121 816 997 888 × 2 = 0 + 0.000 002 232 514 372 243 633 995 776;
  • 37) 0.000 002 232 514 372 243 633 995 776 × 2 = 0 + 0.000 004 465 028 744 487 267 991 552;
  • 38) 0.000 004 465 028 744 487 267 991 552 × 2 = 0 + 0.000 008 930 057 488 974 535 983 104;
  • 39) 0.000 008 930 057 488 974 535 983 104 × 2 = 0 + 0.000 017 860 114 977 949 071 966 208;
  • 40) 0.000 017 860 114 977 949 071 966 208 × 2 = 0 + 0.000 035 720 229 955 898 143 932 416;
  • 41) 0.000 035 720 229 955 898 143 932 416 × 2 = 0 + 0.000 071 440 459 911 796 287 864 832;
  • 42) 0.000 071 440 459 911 796 287 864 832 × 2 = 0 + 0.000 142 880 919 823 592 575 729 664;
  • 43) 0.000 142 880 919 823 592 575 729 664 × 2 = 0 + 0.000 285 761 839 647 185 151 459 328;
  • 44) 0.000 285 761 839 647 185 151 459 328 × 2 = 0 + 0.000 571 523 679 294 370 302 918 656;
  • 45) 0.000 571 523 679 294 370 302 918 656 × 2 = 0 + 0.001 143 047 358 588 740 605 837 312;
  • 46) 0.001 143 047 358 588 740 605 837 312 × 2 = 0 + 0.002 286 094 717 177 481 211 674 624;
  • 47) 0.002 286 094 717 177 481 211 674 624 × 2 = 0 + 0.004 572 189 434 354 962 423 349 248;
  • 48) 0.004 572 189 434 354 962 423 349 248 × 2 = 0 + 0.009 144 378 868 709 924 846 698 496;
  • 49) 0.009 144 378 868 709 924 846 698 496 × 2 = 0 + 0.018 288 757 737 419 849 693 396 992;
  • 50) 0.018 288 757 737 419 849 693 396 992 × 2 = 0 + 0.036 577 515 474 839 699 386 793 984;
  • 51) 0.036 577 515 474 839 699 386 793 984 × 2 = 0 + 0.073 155 030 949 679 398 773 587 968;
  • 52) 0.073 155 030 949 679 398 773 587 968 × 2 = 0 + 0.146 310 061 899 358 797 547 175 936;
  • 53) 0.146 310 061 899 358 797 547 175 936 × 2 = 0 + 0.292 620 123 798 717 595 094 351 872;
  • 54) 0.292 620 123 798 717 595 094 351 872 × 2 = 0 + 0.585 240 247 597 435 190 188 703 744;
  • 55) 0.585 240 247 597 435 190 188 703 744 × 2 = 1 + 0.170 480 495 194 870 380 377 407 488;
  • 56) 0.170 480 495 194 870 380 377 407 488 × 2 = 0 + 0.340 960 990 389 740 760 754 814 976;
  • 57) 0.340 960 990 389 740 760 754 814 976 × 2 = 0 + 0.681 921 980 779 481 521 509 629 952;
  • 58) 0.681 921 980 779 481 521 509 629 952 × 2 = 1 + 0.363 843 961 558 963 043 019 259 904;
  • 59) 0.363 843 961 558 963 043 019 259 904 × 2 = 0 + 0.727 687 923 117 926 086 038 519 808;
  • 60) 0.727 687 923 117 926 086 038 519 808 × 2 = 1 + 0.455 375 846 235 852 172 077 039 616;
  • 61) 0.455 375 846 235 852 172 077 039 616 × 2 = 0 + 0.910 751 692 471 704 344 154 079 232;
  • 62) 0.910 751 692 471 704 344 154 079 232 × 2 = 1 + 0.821 503 384 943 408 688 308 158 464;
  • 63) 0.821 503 384 943 408 688 308 158 464 × 2 = 1 + 0.643 006 769 886 817 376 616 316 928;
  • 64) 0.643 006 769 886 817 376 616 316 928 × 2 = 1 + 0.286 013 539 773 634 753 232 633 856;
  • 65) 0.286 013 539 773 634 753 232 633 856 × 2 = 0 + 0.572 027 079 547 269 506 465 267 712;
  • 66) 0.572 027 079 547 269 506 465 267 712 × 2 = 1 + 0.144 054 159 094 539 012 930 535 424;
  • 67) 0.144 054 159 094 539 012 930 535 424 × 2 = 0 + 0.288 108 318 189 078 025 861 070 848;
  • 68) 0.288 108 318 189 078 025 861 070 848 × 2 = 0 + 0.576 216 636 378 156 051 722 141 696;
  • 69) 0.576 216 636 378 156 051 722 141 696 × 2 = 1 + 0.152 433 272 756 312 103 444 283 392;
  • 70) 0.152 433 272 756 312 103 444 283 392 × 2 = 0 + 0.304 866 545 512 624 206 888 566 784;
  • 71) 0.304 866 545 512 624 206 888 566 784 × 2 = 0 + 0.609 733 091 025 248 413 777 133 568;
  • 72) 0.609 733 091 025 248 413 777 133 568 × 2 = 1 + 0.219 466 182 050 496 827 554 267 136;
  • 73) 0.219 466 182 050 496 827 554 267 136 × 2 = 0 + 0.438 932 364 100 993 655 108 534 272;
  • 74) 0.438 932 364 100 993 655 108 534 272 × 2 = 0 + 0.877 864 728 201 987 310 217 068 544;
  • 75) 0.877 864 728 201 987 310 217 068 544 × 2 = 1 + 0.755 729 456 403 974 620 434 137 088;
  • 76) 0.755 729 456 403 974 620 434 137 088 × 2 = 1 + 0.511 458 912 807 949 240 868 274 176;
  • 77) 0.511 458 912 807 949 240 868 274 176 × 2 = 1 + 0.022 917 825 615 898 481 736 548 352;
  • 78) 0.022 917 825 615 898 481 736 548 352 × 2 = 0 + 0.045 835 651 231 796 963 473 096 704;
  • 79) 0.045 835 651 231 796 963 473 096 704 × 2 = 0 + 0.091 671 302 463 593 926 946 193 408;
  • 80) 0.091 671 302 463 593 926 946 193 408 × 2 = 0 + 0.183 342 604 927 187 853 892 386 816;
  • 81) 0.183 342 604 927 187 853 892 386 816 × 2 = 0 + 0.366 685 209 854 375 707 784 773 632;
  • 82) 0.366 685 209 854 375 707 784 773 632 × 2 = 0 + 0.733 370 419 708 751 415 569 547 264;
  • 83) 0.733 370 419 708 751 415 569 547 264 × 2 = 1 + 0.466 740 839 417 502 831 139 094 528;
  • 84) 0.466 740 839 417 502 831 139 094 528 × 2 = 0 + 0.933 481 678 835 005 662 278 189 056;
  • 85) 0.933 481 678 835 005 662 278 189 056 × 2 = 1 + 0.866 963 357 670 011 324 556 378 112;
  • 86) 0.866 963 357 670 011 324 556 378 112 × 2 = 1 + 0.733 926 715 340 022 649 112 756 224;
  • 87) 0.733 926 715 340 022 649 112 756 224 × 2 = 1 + 0.467 853 430 680 045 298 225 512 448;
  • 88) 0.467 853 430 680 045 298 225 512 448 × 2 = 0 + 0.935 706 861 360 090 596 451 024 896;
  • 89) 0.935 706 861 360 090 596 451 024 896 × 2 = 1 + 0.871 413 722 720 181 192 902 049 792;
  • 90) 0.871 413 722 720 181 192 902 049 792 × 2 = 1 + 0.742 827 445 440 362 385 804 099 584;
  • 91) 0.742 827 445 440 362 385 804 099 584 × 2 = 1 + 0.485 654 890 880 724 771 608 199 168;
  • 92) 0.485 654 890 880 724 771 608 199 168 × 2 = 0 + 0.971 309 781 761 449 543 216 398 336;
  • 93) 0.971 309 781 761 449 543 216 398 336 × 2 = 1 + 0.942 619 563 522 899 086 432 796 672;
  • 94) 0.942 619 563 522 899 086 432 796 672 × 2 = 1 + 0.885 239 127 045 798 172 865 593 344;
  • 95) 0.885 239 127 045 798 172 865 593 344 × 2 = 1 + 0.770 478 254 091 596 345 731 186 688;
  • 96) 0.770 478 254 091 596 345 731 186 688 × 2 = 1 + 0.540 956 508 183 192 691 462 373 376;
  • 97) 0.540 956 508 183 192 691 462 373 376 × 2 = 1 + 0.081 913 016 366 385 382 924 746 752;
  • 98) 0.081 913 016 366 385 382 924 746 752 × 2 = 0 + 0.163 826 032 732 770 765 849 493 504;
  • 99) 0.163 826 032 732 770 765 849 493 504 × 2 = 0 + 0.327 652 065 465 541 531 698 987 008;
  • 100) 0.327 652 065 465 541 531 698 987 008 × 2 = 0 + 0.655 304 130 931 083 063 397 974 016;
  • 101) 0.655 304 130 931 083 063 397 974 016 × 2 = 1 + 0.310 608 261 862 166 126 795 948 032;
  • 102) 0.310 608 261 862 166 126 795 948 032 × 2 = 0 + 0.621 216 523 724 332 253 591 896 064;
  • 103) 0.621 216 523 724 332 253 591 896 064 × 2 = 1 + 0.242 433 047 448 664 507 183 792 128;
  • 104) 0.242 433 047 448 664 507 183 792 128 × 2 = 0 + 0.484 866 094 897 329 014 367 584 256;
  • 105) 0.484 866 094 897 329 014 367 584 256 × 2 = 0 + 0.969 732 189 794 658 028 735 168 512;
  • 106) 0.969 732 189 794 658 028 735 168 512 × 2 = 1 + 0.939 464 379 589 316 057 470 337 024;
  • 107) 0.939 464 379 589 316 057 470 337 024 × 2 = 1 + 0.878 928 759 178 632 114 940 674 048;

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.000 000 000 000 000 032 487 359 891(10) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0101 0111 0100 1001 0011 1000 0010 1110 1110 1111 1000 1010 011(2)

5. Positive number before normalization:

0.000 000 000 000 000 032 487 359 891(10) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0101 0111 0100 1001 0011 1000 0010 1110 1110 1111 1000 1010 011(2)

6. Normalize the binary representation of the number.

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


0.000 000 000 000 000 032 487 359 891(10) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0101 0111 0100 1001 0011 1000 0010 1110 1110 1111 1000 1010 011(2) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0101 0111 0100 1001 0011 1000 0010 1110 1110 1111 1000 1010 011(2) × 20 =


1.0010 1011 1010 0100 1001 1100 0001 0111 0111 0111 1100 0101 0011(2) × 2-55


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


Mantissa (not normalized):
1.0010 1011 1010 0100 1001 1100 0001 0111 0111 0111 1100 0101 0011


8. Adjust the exponent.

Use the 11 bit excess/bias notation:


Exponent (adjusted) =


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


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


(-55 + 1 023)(10) =


968(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;
  • 968 ÷ 2 = 484 + 0;
  • 484 ÷ 2 = 242 + 0;
  • 242 ÷ 2 = 121 + 0;
  • 121 ÷ 2 = 60 + 1;
  • 60 ÷ 2 = 30 + 0;
  • 30 ÷ 2 = 15 + 0;
  • 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) =


968(10) =


011 1100 1000(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. 0010 1011 1010 0100 1001 1100 0001 0111 0111 0111 1100 0101 0011 =


0010 1011 1010 0100 1001 1100 0001 0111 0111 0111 1100 0101 0011


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 1100 1000


Mantissa (52 bits) =
0010 1011 1010 0100 1001 1100 0001 0111 0111 0111 1100 0101 0011


Decimal number 0.000 000 000 000 000 032 487 359 891 converted to 64 bit double precision IEEE 754 binary floating point representation:

0 - 011 1100 1000 - 0010 1011 1010 0100 1001 1100 0001 0111 0111 0111 1100 0101 0011

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