0.000 000 000 000 000 012 345 687 894 549 Converted to 64 Bit Double Precision IEEE 754 Binary Floating Point Representation Standard

Convert decimal 0.000 000 000 000 000 012 345 687 894 549(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 012 345 687 894 549(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 012 345 687 894 549.

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 012 345 687 894 549 × 2 = 0 + 0.000 000 000 000 000 024 691 375 789 098;
  • 2) 0.000 000 000 000 000 024 691 375 789 098 × 2 = 0 + 0.000 000 000 000 000 049 382 751 578 196;
  • 3) 0.000 000 000 000 000 049 382 751 578 196 × 2 = 0 + 0.000 000 000 000 000 098 765 503 156 392;
  • 4) 0.000 000 000 000 000 098 765 503 156 392 × 2 = 0 + 0.000 000 000 000 000 197 531 006 312 784;
  • 5) 0.000 000 000 000 000 197 531 006 312 784 × 2 = 0 + 0.000 000 000 000 000 395 062 012 625 568;
  • 6) 0.000 000 000 000 000 395 062 012 625 568 × 2 = 0 + 0.000 000 000 000 000 790 124 025 251 136;
  • 7) 0.000 000 000 000 000 790 124 025 251 136 × 2 = 0 + 0.000 000 000 000 001 580 248 050 502 272;
  • 8) 0.000 000 000 000 001 580 248 050 502 272 × 2 = 0 + 0.000 000 000 000 003 160 496 101 004 544;
  • 9) 0.000 000 000 000 003 160 496 101 004 544 × 2 = 0 + 0.000 000 000 000 006 320 992 202 009 088;
  • 10) 0.000 000 000 000 006 320 992 202 009 088 × 2 = 0 + 0.000 000 000 000 012 641 984 404 018 176;
  • 11) 0.000 000 000 000 012 641 984 404 018 176 × 2 = 0 + 0.000 000 000 000 025 283 968 808 036 352;
  • 12) 0.000 000 000 000 025 283 968 808 036 352 × 2 = 0 + 0.000 000 000 000 050 567 937 616 072 704;
  • 13) 0.000 000 000 000 050 567 937 616 072 704 × 2 = 0 + 0.000 000 000 000 101 135 875 232 145 408;
  • 14) 0.000 000 000 000 101 135 875 232 145 408 × 2 = 0 + 0.000 000 000 000 202 271 750 464 290 816;
  • 15) 0.000 000 000 000 202 271 750 464 290 816 × 2 = 0 + 0.000 000 000 000 404 543 500 928 581 632;
  • 16) 0.000 000 000 000 404 543 500 928 581 632 × 2 = 0 + 0.000 000 000 000 809 087 001 857 163 264;
  • 17) 0.000 000 000 000 809 087 001 857 163 264 × 2 = 0 + 0.000 000 000 001 618 174 003 714 326 528;
  • 18) 0.000 000 000 001 618 174 003 714 326 528 × 2 = 0 + 0.000 000 000 003 236 348 007 428 653 056;
  • 19) 0.000 000 000 003 236 348 007 428 653 056 × 2 = 0 + 0.000 000 000 006 472 696 014 857 306 112;
  • 20) 0.000 000 000 006 472 696 014 857 306 112 × 2 = 0 + 0.000 000 000 012 945 392 029 714 612 224;
  • 21) 0.000 000 000 012 945 392 029 714 612 224 × 2 = 0 + 0.000 000 000 025 890 784 059 429 224 448;
  • 22) 0.000 000 000 025 890 784 059 429 224 448 × 2 = 0 + 0.000 000 000 051 781 568 118 858 448 896;
  • 23) 0.000 000 000 051 781 568 118 858 448 896 × 2 = 0 + 0.000 000 000 103 563 136 237 716 897 792;
  • 24) 0.000 000 000 103 563 136 237 716 897 792 × 2 = 0 + 0.000 000 000 207 126 272 475 433 795 584;
  • 25) 0.000 000 000 207 126 272 475 433 795 584 × 2 = 0 + 0.000 000 000 414 252 544 950 867 591 168;
  • 26) 0.000 000 000 414 252 544 950 867 591 168 × 2 = 0 + 0.000 000 000 828 505 089 901 735 182 336;
  • 27) 0.000 000 000 828 505 089 901 735 182 336 × 2 = 0 + 0.000 000 001 657 010 179 803 470 364 672;
  • 28) 0.000 000 001 657 010 179 803 470 364 672 × 2 = 0 + 0.000 000 003 314 020 359 606 940 729 344;
  • 29) 0.000 000 003 314 020 359 606 940 729 344 × 2 = 0 + 0.000 000 006 628 040 719 213 881 458 688;
  • 30) 0.000 000 006 628 040 719 213 881 458 688 × 2 = 0 + 0.000 000 013 256 081 438 427 762 917 376;
  • 31) 0.000 000 013 256 081 438 427 762 917 376 × 2 = 0 + 0.000 000 026 512 162 876 855 525 834 752;
  • 32) 0.000 000 026 512 162 876 855 525 834 752 × 2 = 0 + 0.000 000 053 024 325 753 711 051 669 504;
  • 33) 0.000 000 053 024 325 753 711 051 669 504 × 2 = 0 + 0.000 000 106 048 651 507 422 103 339 008;
  • 34) 0.000 000 106 048 651 507 422 103 339 008 × 2 = 0 + 0.000 000 212 097 303 014 844 206 678 016;
  • 35) 0.000 000 212 097 303 014 844 206 678 016 × 2 = 0 + 0.000 000 424 194 606 029 688 413 356 032;
  • 36) 0.000 000 424 194 606 029 688 413 356 032 × 2 = 0 + 0.000 000 848 389 212 059 376 826 712 064;
  • 37) 0.000 000 848 389 212 059 376 826 712 064 × 2 = 0 + 0.000 001 696 778 424 118 753 653 424 128;
  • 38) 0.000 001 696 778 424 118 753 653 424 128 × 2 = 0 + 0.000 003 393 556 848 237 507 306 848 256;
  • 39) 0.000 003 393 556 848 237 507 306 848 256 × 2 = 0 + 0.000 006 787 113 696 475 014 613 696 512;
  • 40) 0.000 006 787 113 696 475 014 613 696 512 × 2 = 0 + 0.000 013 574 227 392 950 029 227 393 024;
  • 41) 0.000 013 574 227 392 950 029 227 393 024 × 2 = 0 + 0.000 027 148 454 785 900 058 454 786 048;
  • 42) 0.000 027 148 454 785 900 058 454 786 048 × 2 = 0 + 0.000 054 296 909 571 800 116 909 572 096;
  • 43) 0.000 054 296 909 571 800 116 909 572 096 × 2 = 0 + 0.000 108 593 819 143 600 233 819 144 192;
  • 44) 0.000 108 593 819 143 600 233 819 144 192 × 2 = 0 + 0.000 217 187 638 287 200 467 638 288 384;
  • 45) 0.000 217 187 638 287 200 467 638 288 384 × 2 = 0 + 0.000 434 375 276 574 400 935 276 576 768;
  • 46) 0.000 434 375 276 574 400 935 276 576 768 × 2 = 0 + 0.000 868 750 553 148 801 870 553 153 536;
  • 47) 0.000 868 750 553 148 801 870 553 153 536 × 2 = 0 + 0.001 737 501 106 297 603 741 106 307 072;
  • 48) 0.001 737 501 106 297 603 741 106 307 072 × 2 = 0 + 0.003 475 002 212 595 207 482 212 614 144;
  • 49) 0.003 475 002 212 595 207 482 212 614 144 × 2 = 0 + 0.006 950 004 425 190 414 964 425 228 288;
  • 50) 0.006 950 004 425 190 414 964 425 228 288 × 2 = 0 + 0.013 900 008 850 380 829 928 850 456 576;
  • 51) 0.013 900 008 850 380 829 928 850 456 576 × 2 = 0 + 0.027 800 017 700 761 659 857 700 913 152;
  • 52) 0.027 800 017 700 761 659 857 700 913 152 × 2 = 0 + 0.055 600 035 401 523 319 715 401 826 304;
  • 53) 0.055 600 035 401 523 319 715 401 826 304 × 2 = 0 + 0.111 200 070 803 046 639 430 803 652 608;
  • 54) 0.111 200 070 803 046 639 430 803 652 608 × 2 = 0 + 0.222 400 141 606 093 278 861 607 305 216;
  • 55) 0.222 400 141 606 093 278 861 607 305 216 × 2 = 0 + 0.444 800 283 212 186 557 723 214 610 432;
  • 56) 0.444 800 283 212 186 557 723 214 610 432 × 2 = 0 + 0.889 600 566 424 373 115 446 429 220 864;
  • 57) 0.889 600 566 424 373 115 446 429 220 864 × 2 = 1 + 0.779 201 132 848 746 230 892 858 441 728;
  • 58) 0.779 201 132 848 746 230 892 858 441 728 × 2 = 1 + 0.558 402 265 697 492 461 785 716 883 456;
  • 59) 0.558 402 265 697 492 461 785 716 883 456 × 2 = 1 + 0.116 804 531 394 984 923 571 433 766 912;
  • 60) 0.116 804 531 394 984 923 571 433 766 912 × 2 = 0 + 0.233 609 062 789 969 847 142 867 533 824;
  • 61) 0.233 609 062 789 969 847 142 867 533 824 × 2 = 0 + 0.467 218 125 579 939 694 285 735 067 648;
  • 62) 0.467 218 125 579 939 694 285 735 067 648 × 2 = 0 + 0.934 436 251 159 879 388 571 470 135 296;
  • 63) 0.934 436 251 159 879 388 571 470 135 296 × 2 = 1 + 0.868 872 502 319 758 777 142 940 270 592;
  • 64) 0.868 872 502 319 758 777 142 940 270 592 × 2 = 1 + 0.737 745 004 639 517 554 285 880 541 184;
  • 65) 0.737 745 004 639 517 554 285 880 541 184 × 2 = 1 + 0.475 490 009 279 035 108 571 761 082 368;
  • 66) 0.475 490 009 279 035 108 571 761 082 368 × 2 = 0 + 0.950 980 018 558 070 217 143 522 164 736;
  • 67) 0.950 980 018 558 070 217 143 522 164 736 × 2 = 1 + 0.901 960 037 116 140 434 287 044 329 472;
  • 68) 0.901 960 037 116 140 434 287 044 329 472 × 2 = 1 + 0.803 920 074 232 280 868 574 088 658 944;
  • 69) 0.803 920 074 232 280 868 574 088 658 944 × 2 = 1 + 0.607 840 148 464 561 737 148 177 317 888;
  • 70) 0.607 840 148 464 561 737 148 177 317 888 × 2 = 1 + 0.215 680 296 929 123 474 296 354 635 776;
  • 71) 0.215 680 296 929 123 474 296 354 635 776 × 2 = 0 + 0.431 360 593 858 246 948 592 709 271 552;
  • 72) 0.431 360 593 858 246 948 592 709 271 552 × 2 = 0 + 0.862 721 187 716 493 897 185 418 543 104;
  • 73) 0.862 721 187 716 493 897 185 418 543 104 × 2 = 1 + 0.725 442 375 432 987 794 370 837 086 208;
  • 74) 0.725 442 375 432 987 794 370 837 086 208 × 2 = 1 + 0.450 884 750 865 975 588 741 674 172 416;
  • 75) 0.450 884 750 865 975 588 741 674 172 416 × 2 = 0 + 0.901 769 501 731 951 177 483 348 344 832;
  • 76) 0.901 769 501 731 951 177 483 348 344 832 × 2 = 1 + 0.803 539 003 463 902 354 966 696 689 664;
  • 77) 0.803 539 003 463 902 354 966 696 689 664 × 2 = 1 + 0.607 078 006 927 804 709 933 393 379 328;
  • 78) 0.607 078 006 927 804 709 933 393 379 328 × 2 = 1 + 0.214 156 013 855 609 419 866 786 758 656;
  • 79) 0.214 156 013 855 609 419 866 786 758 656 × 2 = 0 + 0.428 312 027 711 218 839 733 573 517 312;
  • 80) 0.428 312 027 711 218 839 733 573 517 312 × 2 = 0 + 0.856 624 055 422 437 679 467 147 034 624;
  • 81) 0.856 624 055 422 437 679 467 147 034 624 × 2 = 1 + 0.713 248 110 844 875 358 934 294 069 248;
  • 82) 0.713 248 110 844 875 358 934 294 069 248 × 2 = 1 + 0.426 496 221 689 750 717 868 588 138 496;
  • 83) 0.426 496 221 689 750 717 868 588 138 496 × 2 = 0 + 0.852 992 443 379 501 435 737 176 276 992;
  • 84) 0.852 992 443 379 501 435 737 176 276 992 × 2 = 1 + 0.705 984 886 759 002 871 474 352 553 984;
  • 85) 0.705 984 886 759 002 871 474 352 553 984 × 2 = 1 + 0.411 969 773 518 005 742 948 705 107 968;
  • 86) 0.411 969 773 518 005 742 948 705 107 968 × 2 = 0 + 0.823 939 547 036 011 485 897 410 215 936;
  • 87) 0.823 939 547 036 011 485 897 410 215 936 × 2 = 1 + 0.647 879 094 072 022 971 794 820 431 872;
  • 88) 0.647 879 094 072 022 971 794 820 431 872 × 2 = 1 + 0.295 758 188 144 045 943 589 640 863 744;
  • 89) 0.295 758 188 144 045 943 589 640 863 744 × 2 = 0 + 0.591 516 376 288 091 887 179 281 727 488;
  • 90) 0.591 516 376 288 091 887 179 281 727 488 × 2 = 1 + 0.183 032 752 576 183 774 358 563 454 976;
  • 91) 0.183 032 752 576 183 774 358 563 454 976 × 2 = 0 + 0.366 065 505 152 367 548 717 126 909 952;
  • 92) 0.366 065 505 152 367 548 717 126 909 952 × 2 = 0 + 0.732 131 010 304 735 097 434 253 819 904;
  • 93) 0.732 131 010 304 735 097 434 253 819 904 × 2 = 1 + 0.464 262 020 609 470 194 868 507 639 808;
  • 94) 0.464 262 020 609 470 194 868 507 639 808 × 2 = 0 + 0.928 524 041 218 940 389 737 015 279 616;
  • 95) 0.928 524 041 218 940 389 737 015 279 616 × 2 = 1 + 0.857 048 082 437 880 779 474 030 559 232;
  • 96) 0.857 048 082 437 880 779 474 030 559 232 × 2 = 1 + 0.714 096 164 875 761 558 948 061 118 464;
  • 97) 0.714 096 164 875 761 558 948 061 118 464 × 2 = 1 + 0.428 192 329 751 523 117 896 122 236 928;
  • 98) 0.428 192 329 751 523 117 896 122 236 928 × 2 = 0 + 0.856 384 659 503 046 235 792 244 473 856;
  • 99) 0.856 384 659 503 046 235 792 244 473 856 × 2 = 1 + 0.712 769 319 006 092 471 584 488 947 712;
  • 100) 0.712 769 319 006 092 471 584 488 947 712 × 2 = 1 + 0.425 538 638 012 184 943 168 977 895 424;
  • 101) 0.425 538 638 012 184 943 168 977 895 424 × 2 = 0 + 0.851 077 276 024 369 886 337 955 790 848;
  • 102) 0.851 077 276 024 369 886 337 955 790 848 × 2 = 1 + 0.702 154 552 048 739 772 675 911 581 696;
  • 103) 0.702 154 552 048 739 772 675 911 581 696 × 2 = 1 + 0.404 309 104 097 479 545 351 823 163 392;
  • 104) 0.404 309 104 097 479 545 351 823 163 392 × 2 = 0 + 0.808 618 208 194 959 090 703 646 326 784;
  • 105) 0.808 618 208 194 959 090 703 646 326 784 × 2 = 1 + 0.617 236 416 389 918 181 407 292 653 568;
  • 106) 0.617 236 416 389 918 181 407 292 653 568 × 2 = 1 + 0.234 472 832 779 836 362 814 585 307 136;
  • 107) 0.234 472 832 779 836 362 814 585 307 136 × 2 = 0 + 0.468 945 665 559 672 725 629 170 614 272;
  • 108) 0.468 945 665 559 672 725 629 170 614 272 × 2 = 0 + 0.937 891 331 119 345 451 258 341 228 544;
  • 109) 0.937 891 331 119 345 451 258 341 228 544 × 2 = 1 + 0.875 782 662 238 690 902 516 682 457 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 - 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 012 345 687 894 549(10) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1110 0011 1011 1100 1101 1100 1101 1011 0100 1011 1011 0110 1100 1(2)

5. Positive number before normalization:

0.000 000 000 000 000 012 345 687 894 549(10) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1110 0011 1011 1100 1101 1100 1101 1011 0100 1011 1011 0110 1100 1(2)

6. Normalize the binary representation of the number.

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


0.000 000 000 000 000 012 345 687 894 549(10) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1110 0011 1011 1100 1101 1100 1101 1011 0100 1011 1011 0110 1100 1(2) =


0.0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1110 0011 1011 1100 1101 1100 1101 1011 0100 1011 1011 0110 1100 1(2) × 20 =


1.1100 0111 0111 1001 1011 1001 1011 0110 1001 0111 0110 1101 1001(2) × 2-57


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


Mantissa (not normalized):
1.1100 0111 0111 1001 1011 1001 1011 0110 1001 0111 0110 1101 1001


8. Adjust the exponent.

Use the 11 bit excess/bias notation:


Exponent (adjusted) =


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


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


(-57 + 1 023)(10) =


966(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;
  • 966 ÷ 2 = 483 + 0;
  • 483 ÷ 2 = 241 + 1;
  • 241 ÷ 2 = 120 + 1;
  • 120 ÷ 2 = 60 + 0;
  • 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) =


966(10) =


011 1100 0110(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. 1100 0111 0111 1001 1011 1001 1011 0110 1001 0111 0110 1101 1001 =


1100 0111 0111 1001 1011 1001 1011 0110 1001 0111 0110 1101 1001


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 0110


Mantissa (52 bits) =
1100 0111 0111 1001 1011 1001 1011 0110 1001 0111 0110 1101 1001


Decimal number 0.000 000 000 000 000 012 345 687 894 549 converted to 64 bit double precision IEEE 754 binary floating point representation:

0 - 011 1100 0110 - 1100 0111 0111 1001 1011 1001 1011 0110 1001 0111 0110 1101 1001


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