357,711 189 789 7 scris ca binar pe 64 biți, precizie dublă, virgulă mobilă în standard IEEE 754

Scriere 357,711 189 789 7(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
357,711 189 789 7(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. Întâi convertește în binar (în baza 2) partea întreagă: 357.
Î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;
  • 357 : 2 = 178 + 1;
  • 178 : 2 = 89 + 0;
  • 89 : 2 = 44 + 1;
  • 44 : 2 = 22 + 0;
  • 22 : 2 = 11 + 0;
  • 11 : 2 = 5 + 1;
  • 5 : 2 = 2 + 1;
  • 2 : 2 = 1 + 0;
  • 1 : 2 = 0 + 1;

2. Construiește reprezentarea în baza 2 a părții întregi a numărului.

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

357(10) =


1 0110 0101(2)


3. Convertește în binar (baza 2) partea fracționară: 0,711 189 789 7.

Înmulțește numărul în mod repetat cu 2.


Notăm mai jos fiecare parte întreagă a înmulțirilor.


Ne oprim când obținem o parte fracționară egală cu zero.


  • #) înmulțire = întreg + fracționar;
  • 1) 0,711 189 789 7 × 2 = 1 + 0,422 379 579 4;
  • 2) 0,422 379 579 4 × 2 = 0 + 0,844 759 158 8;
  • 3) 0,844 759 158 8 × 2 = 1 + 0,689 518 317 6;
  • 4) 0,689 518 317 6 × 2 = 1 + 0,379 036 635 2;
  • 5) 0,379 036 635 2 × 2 = 0 + 0,758 073 270 4;
  • 6) 0,758 073 270 4 × 2 = 1 + 0,516 146 540 8;
  • 7) 0,516 146 540 8 × 2 = 1 + 0,032 293 081 6;
  • 8) 0,032 293 081 6 × 2 = 0 + 0,064 586 163 2;
  • 9) 0,064 586 163 2 × 2 = 0 + 0,129 172 326 4;
  • 10) 0,129 172 326 4 × 2 = 0 + 0,258 344 652 8;
  • 11) 0,258 344 652 8 × 2 = 0 + 0,516 689 305 6;
  • 12) 0,516 689 305 6 × 2 = 1 + 0,033 378 611 2;
  • 13) 0,033 378 611 2 × 2 = 0 + 0,066 757 222 4;
  • 14) 0,066 757 222 4 × 2 = 0 + 0,133 514 444 8;
  • 15) 0,133 514 444 8 × 2 = 0 + 0,267 028 889 6;
  • 16) 0,267 028 889 6 × 2 = 0 + 0,534 057 779 2;
  • 17) 0,534 057 779 2 × 2 = 1 + 0,068 115 558 4;
  • 18) 0,068 115 558 4 × 2 = 0 + 0,136 231 116 8;
  • 19) 0,136 231 116 8 × 2 = 0 + 0,272 462 233 6;
  • 20) 0,272 462 233 6 × 2 = 0 + 0,544 924 467 2;
  • 21) 0,544 924 467 2 × 2 = 1 + 0,089 848 934 4;
  • 22) 0,089 848 934 4 × 2 = 0 + 0,179 697 868 8;
  • 23) 0,179 697 868 8 × 2 = 0 + 0,359 395 737 6;
  • 24) 0,359 395 737 6 × 2 = 0 + 0,718 791 475 2;
  • 25) 0,718 791 475 2 × 2 = 1 + 0,437 582 950 4;
  • 26) 0,437 582 950 4 × 2 = 0 + 0,875 165 900 8;
  • 27) 0,875 165 900 8 × 2 = 1 + 0,750 331 801 6;
  • 28) 0,750 331 801 6 × 2 = 1 + 0,500 663 603 2;
  • 29) 0,500 663 603 2 × 2 = 1 + 0,001 327 206 4;
  • 30) 0,001 327 206 4 × 2 = 0 + 0,002 654 412 8;
  • 31) 0,002 654 412 8 × 2 = 0 + 0,005 308 825 6;
  • 32) 0,005 308 825 6 × 2 = 0 + 0,010 617 651 2;
  • 33) 0,010 617 651 2 × 2 = 0 + 0,021 235 302 4;
  • 34) 0,021 235 302 4 × 2 = 0 + 0,042 470 604 8;
  • 35) 0,042 470 604 8 × 2 = 0 + 0,084 941 209 6;
  • 36) 0,084 941 209 6 × 2 = 0 + 0,169 882 419 2;
  • 37) 0,169 882 419 2 × 2 = 0 + 0,339 764 838 4;
  • 38) 0,339 764 838 4 × 2 = 0 + 0,679 529 676 8;
  • 39) 0,679 529 676 8 × 2 = 1 + 0,359 059 353 6;
  • 40) 0,359 059 353 6 × 2 = 0 + 0,718 118 707 2;
  • 41) 0,718 118 707 2 × 2 = 1 + 0,436 237 414 4;
  • 42) 0,436 237 414 4 × 2 = 0 + 0,872 474 828 8;
  • 43) 0,872 474 828 8 × 2 = 1 + 0,744 949 657 6;
  • 44) 0,744 949 657 6 × 2 = 1 + 0,489 899 315 2;
  • 45) 0,489 899 315 2 × 2 = 0 + 0,979 798 630 4;
  • 46) 0,979 798 630 4 × 2 = 1 + 0,959 597 260 8;
  • 47) 0,959 597 260 8 × 2 = 1 + 0,919 194 521 6;
  • 48) 0,919 194 521 6 × 2 = 1 + 0,838 389 043 2;
  • 49) 0,838 389 043 2 × 2 = 1 + 0,676 778 086 4;
  • 50) 0,676 778 086 4 × 2 = 1 + 0,353 556 172 8;
  • 51) 0,353 556 172 8 × 2 = 0 + 0,707 112 345 6;
  • 52) 0,707 112 345 6 × 2 = 1 + 0,414 224 691 2;
  • 53) 0,414 224 691 2 × 2 = 0 + 0,828 449 382 4;

Nicio parte fracționară egală cu zero n-a fost obținută. Însă am efectuat un număr suficient de iterații (peste limita de Mantisă) și am obținut măcar o parte întreagă diferită de zero => STOP (Pierdem din precizie - numărul convertit pe care îl vom obține în final va fi doar o foarte bună aproximare a celui inițial).


4. Construiește reprezentarea în baza 2 a părții fracționare a numărului.

Ia fiecare parte întreagă a rezultatelor înmulțirilor, începând din partea de sus a listei construite:


0,711 189 789 7(10) =


0,1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011 0111 1101 0(2)

5. Numărul pozitiv înainte de normalizare:

357,711 189 789 7(10) =


1 0110 0101,1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011 0111 1101 0(2)

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

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


357,711 189 789 7(10) =


1 0110 0101,1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011 0111 1101 0(2) =


1 0110 0101,1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011 0111 1101 0(2) × 20 =


1,0110 0101 1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011 0111 1101 0(2) × 28


7. 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): 8


Mantisă (nenormalizată):
1,0110 0101 1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011 0111 1101 0


8. Ajustează exponentul.

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


Exponent (ajustat) =


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


8 + 2(11-1) - 1 =


(8 + 1 023)(10) =


1 031(10)


9. 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 031 : 2 = 515 + 1;
  • 515 : 2 = 257 + 1;
  • 257 : 2 = 128 + 1;
  • 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. 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) =


1031(10) =


100 0000 0111(2)


11. 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. 0110 0101 1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011 0 1111 1010 =


0110 0101 1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011


12. 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 0000 0111


Mantisă (52 biți) =
0110 0101 1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011


Numărul zecimal 357,711 189 789 7 scris în binar în representarea pe 64 biți, precizie dublă, în virgulă mobilă în standard IEEE 754:

0 - 100 0000 0111 - 0110 0101 1011 0110 0001 0000 1000 1000 1011 1000 0000 0010 1011


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