321 856 265 976 324 239 999 999 999 913 scris ca binar pe 64 biți, precizie dublă, virgulă mobilă în standard IEEE 754

Scriere 321 856 265 976 324 239 999 999 999 913(10) din zecimal în binar pe 64 de biți, precizie dublă, în virgulă mobilă în standard IEEE 754 (1 bit pentru semn, 11 biți pentru exponent, 52 de biți pentru mantisă)

Care sunt pașii pentru a scrie numărul
321 856 265 976 324 239 999 999 999 913(10) din zecimal în binar în reprezentarea pe 64 biți, precizie dublă, în virgulă mobilă în standard IEEE 754 (1 bit pentru semn, 11 biți pentru exponent, 52 de biți pentru mantisă)

1. Împarte numărul în mod repetat la 2.

Notăm mai jos, în ordine, fiecare rest al împărțirilor.

Ne oprim când obținem un cât egal cu zero.


  • împărțire = cât + rest;
  • 321 856 265 976 324 239 999 999 999 913 : 2 = 160 928 132 988 162 119 999 999 999 956 + 1;
  • 160 928 132 988 162 119 999 999 999 956 : 2 = 80 464 066 494 081 059 999 999 999 978 + 0;
  • 80 464 066 494 081 059 999 999 999 978 : 2 = 40 232 033 247 040 529 999 999 999 989 + 0;
  • 40 232 033 247 040 529 999 999 999 989 : 2 = 20 116 016 623 520 264 999 999 999 994 + 1;
  • 20 116 016 623 520 264 999 999 999 994 : 2 = 10 058 008 311 760 132 499 999 999 997 + 0;
  • 10 058 008 311 760 132 499 999 999 997 : 2 = 5 029 004 155 880 066 249 999 999 998 + 1;
  • 5 029 004 155 880 066 249 999 999 998 : 2 = 2 514 502 077 940 033 124 999 999 999 + 0;
  • 2 514 502 077 940 033 124 999 999 999 : 2 = 1 257 251 038 970 016 562 499 999 999 + 1;
  • 1 257 251 038 970 016 562 499 999 999 : 2 = 628 625 519 485 008 281 249 999 999 + 1;
  • 628 625 519 485 008 281 249 999 999 : 2 = 314 312 759 742 504 140 624 999 999 + 1;
  • 314 312 759 742 504 140 624 999 999 : 2 = 157 156 379 871 252 070 312 499 999 + 1;
  • 157 156 379 871 252 070 312 499 999 : 2 = 78 578 189 935 626 035 156 249 999 + 1;
  • 78 578 189 935 626 035 156 249 999 : 2 = 39 289 094 967 813 017 578 124 999 + 1;
  • 39 289 094 967 813 017 578 124 999 : 2 = 19 644 547 483 906 508 789 062 499 + 1;
  • 19 644 547 483 906 508 789 062 499 : 2 = 9 822 273 741 953 254 394 531 249 + 1;
  • 9 822 273 741 953 254 394 531 249 : 2 = 4 911 136 870 976 627 197 265 624 + 1;
  • 4 911 136 870 976 627 197 265 624 : 2 = 2 455 568 435 488 313 598 632 812 + 0;
  • 2 455 568 435 488 313 598 632 812 : 2 = 1 227 784 217 744 156 799 316 406 + 0;
  • 1 227 784 217 744 156 799 316 406 : 2 = 613 892 108 872 078 399 658 203 + 0;
  • 613 892 108 872 078 399 658 203 : 2 = 306 946 054 436 039 199 829 101 + 1;
  • 306 946 054 436 039 199 829 101 : 2 = 153 473 027 218 019 599 914 550 + 1;
  • 153 473 027 218 019 599 914 550 : 2 = 76 736 513 609 009 799 957 275 + 0;
  • 76 736 513 609 009 799 957 275 : 2 = 38 368 256 804 504 899 978 637 + 1;
  • 38 368 256 804 504 899 978 637 : 2 = 19 184 128 402 252 449 989 318 + 1;
  • 19 184 128 402 252 449 989 318 : 2 = 9 592 064 201 126 224 994 659 + 0;
  • 9 592 064 201 126 224 994 659 : 2 = 4 796 032 100 563 112 497 329 + 1;
  • 4 796 032 100 563 112 497 329 : 2 = 2 398 016 050 281 556 248 664 + 1;
  • 2 398 016 050 281 556 248 664 : 2 = 1 199 008 025 140 778 124 332 + 0;
  • 1 199 008 025 140 778 124 332 : 2 = 599 504 012 570 389 062 166 + 0;
  • 599 504 012 570 389 062 166 : 2 = 299 752 006 285 194 531 083 + 0;
  • 299 752 006 285 194 531 083 : 2 = 149 876 003 142 597 265 541 + 1;
  • 149 876 003 142 597 265 541 : 2 = 74 938 001 571 298 632 770 + 1;
  • 74 938 001 571 298 632 770 : 2 = 37 469 000 785 649 316 385 + 0;
  • 37 469 000 785 649 316 385 : 2 = 18 734 500 392 824 658 192 + 1;
  • 18 734 500 392 824 658 192 : 2 = 9 367 250 196 412 329 096 + 0;
  • 9 367 250 196 412 329 096 : 2 = 4 683 625 098 206 164 548 + 0;
  • 4 683 625 098 206 164 548 : 2 = 2 341 812 549 103 082 274 + 0;
  • 2 341 812 549 103 082 274 : 2 = 1 170 906 274 551 541 137 + 0;
  • 1 170 906 274 551 541 137 : 2 = 585 453 137 275 770 568 + 1;
  • 585 453 137 275 770 568 : 2 = 292 726 568 637 885 284 + 0;
  • 292 726 568 637 885 284 : 2 = 146 363 284 318 942 642 + 0;
  • 146 363 284 318 942 642 : 2 = 73 181 642 159 471 321 + 0;
  • 73 181 642 159 471 321 : 2 = 36 590 821 079 735 660 + 1;
  • 36 590 821 079 735 660 : 2 = 18 295 410 539 867 830 + 0;
  • 18 295 410 539 867 830 : 2 = 9 147 705 269 933 915 + 0;
  • 9 147 705 269 933 915 : 2 = 4 573 852 634 966 957 + 1;
  • 4 573 852 634 966 957 : 2 = 2 286 926 317 483 478 + 1;
  • 2 286 926 317 483 478 : 2 = 1 143 463 158 741 739 + 0;
  • 1 143 463 158 741 739 : 2 = 571 731 579 370 869 + 1;
  • 571 731 579 370 869 : 2 = 285 865 789 685 434 + 1;
  • 285 865 789 685 434 : 2 = 142 932 894 842 717 + 0;
  • 142 932 894 842 717 : 2 = 71 466 447 421 358 + 1;
  • 71 466 447 421 358 : 2 = 35 733 223 710 679 + 0;
  • 35 733 223 710 679 : 2 = 17 866 611 855 339 + 1;
  • 17 866 611 855 339 : 2 = 8 933 305 927 669 + 1;
  • 8 933 305 927 669 : 2 = 4 466 652 963 834 + 1;
  • 4 466 652 963 834 : 2 = 2 233 326 481 917 + 0;
  • 2 233 326 481 917 : 2 = 1 116 663 240 958 + 1;
  • 1 116 663 240 958 : 2 = 558 331 620 479 + 0;
  • 558 331 620 479 : 2 = 279 165 810 239 + 1;
  • 279 165 810 239 : 2 = 139 582 905 119 + 1;
  • 139 582 905 119 : 2 = 69 791 452 559 + 1;
  • 69 791 452 559 : 2 = 34 895 726 279 + 1;
  • 34 895 726 279 : 2 = 17 447 863 139 + 1;
  • 17 447 863 139 : 2 = 8 723 931 569 + 1;
  • 8 723 931 569 : 2 = 4 361 965 784 + 1;
  • 4 361 965 784 : 2 = 2 180 982 892 + 0;
  • 2 180 982 892 : 2 = 1 090 491 446 + 0;
  • 1 090 491 446 : 2 = 545 245 723 + 0;
  • 545 245 723 : 2 = 272 622 861 + 1;
  • 272 622 861 : 2 = 136 311 430 + 1;
  • 136 311 430 : 2 = 68 155 715 + 0;
  • 68 155 715 : 2 = 34 077 857 + 1;
  • 34 077 857 : 2 = 17 038 928 + 1;
  • 17 038 928 : 2 = 8 519 464 + 0;
  • 8 519 464 : 2 = 4 259 732 + 0;
  • 4 259 732 : 2 = 2 129 866 + 0;
  • 2 129 866 : 2 = 1 064 933 + 0;
  • 1 064 933 : 2 = 532 466 + 1;
  • 532 466 : 2 = 266 233 + 0;
  • 266 233 : 2 = 133 116 + 1;
  • 133 116 : 2 = 66 558 + 0;
  • 66 558 : 2 = 33 279 + 0;
  • 33 279 : 2 = 16 639 + 1;
  • 16 639 : 2 = 8 319 + 1;
  • 8 319 : 2 = 4 159 + 1;
  • 4 159 : 2 = 2 079 + 1;
  • 2 079 : 2 = 1 039 + 1;
  • 1 039 : 2 = 519 + 1;
  • 519 : 2 = 259 + 1;
  • 259 : 2 = 129 + 1;
  • 129 : 2 = 64 + 1;
  • 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;

2. Construiește reprezentarea numărului pozitiv în baza 2.

Ia fiecare rest al împărțirilor începând din partea de jos a listei construite mai sus.

321 856 265 976 324 239 999 999 999 913(10) =


100 0000 1111 1111 1001 0100 0011 0110 0011 1111 1010 1110 1011 0110 0100 0100 0010 1100 0110 1101 1000 1111 1111 1010 1001(2)


3. Normalizează reprezentarea binară a numărului.

Mută virgula cu 98 poziții la stânga, astfel încât partea întreagă a acestuia să aibă un singur bit, diferit de 0:


321 856 265 976 324 239 999 999 999 913(10) =


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


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


1,0000 0011 1111 1110 0101 0000 1101 1000 1111 1110 1011 1010 1101 1001 0001 0000 1011 0001 1011 0110 0011 1111 1110 1010 01(2) × 298


4. Până la acest moment avem următoarele elemente ce vor alcătui numărul binar în reprezentare IEEE 754, precizie dublă (64 biți):

Semn 0 (un număr pozitiv)


Exponent (neajustat): 98


Mantisă (nenormalizată):
1,0000 0011 1111 1110 0101 0000 1101 1000 1111 1110 1011 1010 1101 1001 0001 0000 1011 0001 1011 0110 0011 1111 1110 1010 01


5. Ajustează exponentul.

Folosește reprezentarea deplasată pe 11 biți:


Exponent (ajustat) =


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


98 + 2(11-1) - 1 =


(98 + 1 023)(10) =


1 121(10)


6. Convertește exponentul ajustat din zecimal (baza 10) în binar pe 11 biți.

Folosește din nou tehnica împărțirii repetate la 2:


  • împărțire = cât + rest;
  • 1 121 : 2 = 560 + 1;
  • 560 : 2 = 280 + 0;
  • 280 : 2 = 140 + 0;
  • 140 : 2 = 70 + 0;
  • 70 : 2 = 35 + 0;
  • 35 : 2 = 17 + 1;
  • 17 : 2 = 8 + 1;
  • 8 : 2 = 4 + 0;
  • 4 : 2 = 2 + 0;
  • 2 : 2 = 1 + 0;
  • 1 : 2 = 0 + 1;

7. Construiește reprezentarea în baza 2 a exponentului ajustat.

Ia fiecare rest al împărțirilor începând din partea de jos a listei construite mai sus.


Exponent (ajustat) =


1121(10) =


100 0110 0001(2)


8. Normalizează mantisa.

a) Renunță la primul bit, cel mai din stânga, care e întotdeauna 1, și la separatorul zecimal, dacă e cazul.


b) Ajustează-i lungimea la 52 biți, prin renunțarea la biții în exces, din dreapta (dacă măcar unul din acești biți în exces e setat pe 1, se pierde din precizie...).


Mantisă (normalizată) =


1. 0000 0011 1111 1110 0101 0000 1101 1000 1111 1110 1011 1010 1101 10 0100 0100 0010 1100 0110 1101 1000 1111 1111 1010 1001 =


0000 0011 1111 1110 0101 0000 1101 1000 1111 1110 1011 1010 1101


9. Cele trei elemente care alcătuiesc reprezentarea numărului în sistem binar pe 64 de biți, precizie dublă, în virgulă mobilă în standard IEEE 754:

Semn (1 bit) =
0 (un număr pozitiv)


Exponent (11 biți) =
100 0110 0001


Mantisă (52 biți) =
0000 0011 1111 1110 0101 0000 1101 1000 1111 1110 1011 1010 1101


Numărul zecimal 321 856 265 976 324 239 999 999 999 913 scris în binar în representarea pe 64 biți, precizie dublă, în virgulă mobilă în standard IEEE 754:

0 - 100 0110 0001 - 0000 0011 1111 1110 0101 0000 1101 1000 1111 1110 1011 1010 1101

Cum să convertești numere zecimale din sistem zecimal (baza 10) în sistem binar în virgulă mobilă în reprezentarea IEEE 754, precizie dublă pe 64 de biți

Urmează pașii de mai jos pentru a converti un număr zecimal (cu virgulă) din baza zece în sistem binar în virgulă mobilă în reprezentarea IEEE 754, precizie dublă pe 64 de biți:

  • 1. Dacă numărul de convertit e negativ, începe cu versiunea pozitivă a numărului.
  • 2. Convertește întâi partea întreagă, împarte în mod repetat la 2 reprezentarea pozitivă a numărului întreg cu semn care trebuie convertit în sistem binar, ținând minte fiecare rest al împărțirilor. Atunci când găsim un CÂT care e egal cu ZERO => STOP
  • 3. Construiește apoi reprezentarea în baza 2 a părții întregi a numărului, luând fiecare rest al împărțirilor efectuate, începând din partea de jos a listei construite mai sus. Astfel, ultimul rest al împărțirilor de la punctul de mai sus devine primul simbol (situat cel mai la stânga) al numărului în baza doi, în timp ce primul rest devine ultimul simbol (situat cel mai la dreapta).
  • 4. Convertește apoi partea fracționară. Înmulțește partea fracționara în mod repetat cu 2, până se obține o parte fracționară egală cu zero, ținând minte fiecare parte întreagă a înmulțirilor.
  • 5. Construiește reprezentarea în baza 2 a părții fracționare a numărului, luând fiecare parte întreagă a rezultatelor înmulțirilor efectuate, începând din partea de sus a listei construite mai sus (se iau părțile întregi în ordinea în care au fost obținute).
  • 6. Normalizează reprezentarea binară a numărului, mutând virgula cu "n" poziții fie la stânga, fie la dreapta, astfel încât partea întreagă a numărului binar să aibă un singur bit, diferit de '0' (la stânga semnului zecimal să rămână un singur simbol, egal cu 1).
  • 7. Ajustează exponentul folosind reprezentarea deplasată pe 11 biți apoi convertește-l din zecimal (baza 10) în binar pe 11 biți, folosind tehnica împărțirii repetate la 2, așa cum am mai arătat mai sus:
    Exponent (ajustat) = Exponent (neajustat) + 2(11-1) - 1;
  • 8. Normalizează mantisa, renunțând la primul bit (cel mai din stânga), care este întotdeauna '1' (și la semnul zecimal, dacă e cazul) și ajustându-i lungimea, la 52 biți, fie renunțând la biții în exces din dreapta (pierzând precizie...), fie adaugând tot la dreapta biți setați pe '0'.
  • Semnul (ocupă 1 bit) e egal fie cu 1, dacă e număr negativ, fie cu 0, dacă e număr pozitiv.

Exemplu: convertește numărul negativ -31,640 215 din sistem zecimal (baza zece) în sistem binar în virgulă mobilă în reprezentarea IEEE 754, precizie dublă pe 64 de biți:

  • 1. Începe cu versiunea pozitivă a numărului:

    |-31,640 215| = 31,640 215;

  • 2. Convertește întâi partea întreagă, 31. Împarte numărul 31 în mod repetat la 2, ținând minte fiecare rest al împărțirilor, până obținem un cât care este egal cu zero:
    • împărțire = cât + rest;
    • 31 : 2 = 15 + 1;
    • 15 : 2 = 7 + 1;
    • 7 : 2 = 3 + 1;
    • 3 : 2 = 1 + 1;
    • 1 : 2 = 0 + 1;
    • Am obținut un cât care este egal cu ZERO => STOP
  • 3. Construiește reprezentarea în baza 2 a părții întregi a numărului, luând fiecare rest al împărțirilor începând din partea de jos a listei construite mai sus:

    31(10) = 1 1111(2)

  • 4. Convertește apoi partea fracționară 0,640 215. Înmulțește în mod repetat cu 2, ținând minte fiecare parte întreagă a înmulțirilor, până obținem o parte fracționară egală cu zero:
    • #) înmulțire = întreg + fracționar;
    • 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;
    • Nicio parte fracționară egală cu zero n-a fost obținută prin calcule. Însă am efectuat un număr suficient de iterații (peste limita de Mantisă = 52) și a fost calculată măcar o parte întreagă diferită de zero => STOP (pierzând precizie...).
  • 5. Construiește reprezentarea în baza 2 a părții fracționare a numărului, luând fiecare parte întreagă a rezultatelor înmulțirilor efectuate anterior, începând din partea de sus a listei construite:

    0,640 215(10) = 0,1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0(2)

  • 6. Recapitulare - numărul pozitiv înainte de normalizare:

    31,640 215(10) = 1 1111,1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0(2)

  • 7. Normalizează reprezentarea binară a numărului, mutând virgula cu 4 poziții la stânga astfel încât partea întreagă a acestuia să aibă un singur bit, diferit de '0':

    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. Până la acest moment avem următoarele elemente ce vor alcătui numărul binar în reprezentare IEEE 754, precizie dublă (64 biți):

    Semn: 1 (număr negativ);

    Exponent (neajustat): 4;

    Mantisă (nenormalizată): 1,1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0;

  • 9. Ajustează exponentul folosind reprezentarea deplasată pe 11 biți apoi convertește-l din zecimal (baza 10) în binar pe 11 biți, folosind tehnica împărțirii repetate la 2, așa cum am mai arătat mai sus:

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

  • 10. Normalizează mantisa, renunțând la primul bit (cel mai din stânga), care e întotdeauna '1' (și la semnul zecimal) și ajustându-i lungimea, la 52 biți, prin renunțarea la biții în exces, din dreapta (pierzând precizie...):

    Mantisă (nenormalizată): 1,1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100 1010 0

    Mantisă (normalizată): 1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100

  • Concluzia:

    Semn (1 bit) = 1 (număr negativ)

    Exponent (11 biți) = 100 0000 0011

    Mantisă (52 biți) = 1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100

  • Numărul -31,640 215, zecimal, convertit din sistem zecimal (baza 10) în binar pe 64 de biți, precizie dublă, în virgulă mobilă în standard IEEE 754 este:
    1 - 100 0000 0011 - 1111 1010 0011 1110 0101 0010 0001 0101 0111 0110 1000 1001 1100