10 009 999 999 999 999 999 081 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 10 009 999 999 999 999 999 081(10) din zecimal în binar pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754 (1 bit pentru semn, 8 biți pentru exponent, 23 de biți pentru mantisă)

Care sunt pașii pentru a scrie numărul
10 009 999 999 999 999 999 081(10) din zecimal în binar în reprezentarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754 (1 bit pentru semn, 8 biți pentru exponent, 23 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;
  • 10 009 999 999 999 999 999 081 : 2 = 5 004 999 999 999 999 999 540 + 1;
  • 5 004 999 999 999 999 999 540 : 2 = 2 502 499 999 999 999 999 770 + 0;
  • 2 502 499 999 999 999 999 770 : 2 = 1 251 249 999 999 999 999 885 + 0;
  • 1 251 249 999 999 999 999 885 : 2 = 625 624 999 999 999 999 942 + 1;
  • 625 624 999 999 999 999 942 : 2 = 312 812 499 999 999 999 971 + 0;
  • 312 812 499 999 999 999 971 : 2 = 156 406 249 999 999 999 985 + 1;
  • 156 406 249 999 999 999 985 : 2 = 78 203 124 999 999 999 992 + 1;
  • 78 203 124 999 999 999 992 : 2 = 39 101 562 499 999 999 996 + 0;
  • 39 101 562 499 999 999 996 : 2 = 19 550 781 249 999 999 998 + 0;
  • 19 550 781 249 999 999 998 : 2 = 9 775 390 624 999 999 999 + 0;
  • 9 775 390 624 999 999 999 : 2 = 4 887 695 312 499 999 999 + 1;
  • 4 887 695 312 499 999 999 : 2 = 2 443 847 656 249 999 999 + 1;
  • 2 443 847 656 249 999 999 : 2 = 1 221 923 828 124 999 999 + 1;
  • 1 221 923 828 124 999 999 : 2 = 610 961 914 062 499 999 + 1;
  • 610 961 914 062 499 999 : 2 = 305 480 957 031 249 999 + 1;
  • 305 480 957 031 249 999 : 2 = 152 740 478 515 624 999 + 1;
  • 152 740 478 515 624 999 : 2 = 76 370 239 257 812 499 + 1;
  • 76 370 239 257 812 499 : 2 = 38 185 119 628 906 249 + 1;
  • 38 185 119 628 906 249 : 2 = 19 092 559 814 453 124 + 1;
  • 19 092 559 814 453 124 : 2 = 9 546 279 907 226 562 + 0;
  • 9 546 279 907 226 562 : 2 = 4 773 139 953 613 281 + 0;
  • 4 773 139 953 613 281 : 2 = 2 386 569 976 806 640 + 1;
  • 2 386 569 976 806 640 : 2 = 1 193 284 988 403 320 + 0;
  • 1 193 284 988 403 320 : 2 = 596 642 494 201 660 + 0;
  • 596 642 494 201 660 : 2 = 298 321 247 100 830 + 0;
  • 298 321 247 100 830 : 2 = 149 160 623 550 415 + 0;
  • 149 160 623 550 415 : 2 = 74 580 311 775 207 + 1;
  • 74 580 311 775 207 : 2 = 37 290 155 887 603 + 1;
  • 37 290 155 887 603 : 2 = 18 645 077 943 801 + 1;
  • 18 645 077 943 801 : 2 = 9 322 538 971 900 + 1;
  • 9 322 538 971 900 : 2 = 4 661 269 485 950 + 0;
  • 4 661 269 485 950 : 2 = 2 330 634 742 975 + 0;
  • 2 330 634 742 975 : 2 = 1 165 317 371 487 + 1;
  • 1 165 317 371 487 : 2 = 582 658 685 743 + 1;
  • 582 658 685 743 : 2 = 291 329 342 871 + 1;
  • 291 329 342 871 : 2 = 145 664 671 435 + 1;
  • 145 664 671 435 : 2 = 72 832 335 717 + 1;
  • 72 832 335 717 : 2 = 36 416 167 858 + 1;
  • 36 416 167 858 : 2 = 18 208 083 929 + 0;
  • 18 208 083 929 : 2 = 9 104 041 964 + 1;
  • 9 104 041 964 : 2 = 4 552 020 982 + 0;
  • 4 552 020 982 : 2 = 2 276 010 491 + 0;
  • 2 276 010 491 : 2 = 1 138 005 245 + 1;
  • 1 138 005 245 : 2 = 569 002 622 + 1;
  • 569 002 622 : 2 = 284 501 311 + 0;
  • 284 501 311 : 2 = 142 250 655 + 1;
  • 142 250 655 : 2 = 71 125 327 + 1;
  • 71 125 327 : 2 = 35 562 663 + 1;
  • 35 562 663 : 2 = 17 781 331 + 1;
  • 17 781 331 : 2 = 8 890 665 + 1;
  • 8 890 665 : 2 = 4 445 332 + 1;
  • 4 445 332 : 2 = 2 222 666 + 0;
  • 2 222 666 : 2 = 1 111 333 + 0;
  • 1 111 333 : 2 = 555 666 + 1;
  • 555 666 : 2 = 277 833 + 0;
  • 277 833 : 2 = 138 916 + 1;
  • 138 916 : 2 = 69 458 + 0;
  • 69 458 : 2 = 34 729 + 0;
  • 34 729 : 2 = 17 364 + 1;
  • 17 364 : 2 = 8 682 + 0;
  • 8 682 : 2 = 4 341 + 0;
  • 4 341 : 2 = 2 170 + 1;
  • 2 170 : 2 = 1 085 + 0;
  • 1 085 : 2 = 542 + 1;
  • 542 : 2 = 271 + 0;
  • 271 : 2 = 135 + 1;
  • 135 : 2 = 67 + 1;
  • 67 : 2 = 33 + 1;
  • 33 : 2 = 16 + 1;
  • 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.

10 009 999 999 999 999 999 081(10) =


10 0001 1110 1010 0100 1010 0111 1110 1100 1011 1111 0011 1100 0010 0111 1111 1100 0110 1001(2)


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

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


10 009 999 999 999 999 999 081(10) =


10 0001 1110 1010 0100 1010 0111 1110 1100 1011 1111 0011 1100 0010 0111 1111 1100 0110 1001(2) =


10 0001 1110 1010 0100 1010 0111 1110 1100 1011 1111 0011 1100 0010 0111 1111 1100 0110 1001(2) × 20 =


1,0000 1111 0101 0010 0101 0011 1111 0110 0101 1111 1001 1110 0001 0011 1111 1110 0011 0100 1(2) × 273


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

Semn 0 (un număr pozitiv)


Exponent (neajustat): 73


Mantisă (nenormalizată):
1,0000 1111 0101 0010 0101 0011 1111 0110 0101 1111 1001 1110 0001 0011 1111 1110 0011 0100 1


5. Ajustează exponentul.

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


Exponent (ajustat) =


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


73 + 2(8-1) - 1 =


(73 + 127)(10) =


200(10)


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

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


  • împărțire = cât + rest;
  • 200 : 2 = 100 + 0;
  • 100 : 2 = 50 + 0;
  • 50 : 2 = 25 + 0;
  • 25 : 2 = 12 + 1;
  • 12 : 2 = 6 + 0;
  • 6 : 2 = 3 + 0;
  • 3 : 2 = 1 + 1;
  • 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) =


200(10) =


1100 1000(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 23 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. 000 0111 1010 1001 0010 1001 11 1110 1100 1011 1111 0011 1100 0010 0111 1111 1100 0110 1001 =


000 0111 1010 1001 0010 1001


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

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


Exponent (8 biți) =
1100 1000


Mantisă (23 biți) =
000 0111 1010 1001 0010 1001


Numărul zecimal 10 009 999 999 999 999 999 081 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1100 1000 - 000 0111 1010 1001 0010 1001


Cum să convertești numere zecimale din sistem zecimal (baza 10) în sistem binar în virgulă mobilă în reprezentarea IEEE 754, precizie simplă pe 32 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 simplă pe 32 de biți:

  • 1. Dacă numărul de convertit este negativ, se începe cu versiunea pozitivă a numărului.
  • 2. Se 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 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. 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 î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 de mai sus, începând din partea de sus a listei construite (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 la stânga (sau, dacă e cazul, la dreapta) astfel încât partea întreagă a acestuia să mai conțină un singur bit, diferit de '0'.
  • 7. Ajustează exponentul folosind reprezentarea deplasată pe 8 biți apoi convertește-l din zecimal (baza 10) în binar pe 8 biți, folosind tehnica împărțirii repetate la 2, așa cum am mai arătat mai sus:
    Exponent (ajustat) = Exponent (neajustat) + 2(8-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 23 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'.
  • 9. Semnul (ocupă 1 bit) este egal fie cu 1, dacă este un număr negativ, fie cu 0, dacă e un număr pozitiv.

Exemplu: convertește numărul negativ -25,347 din sistem zecimal (baza zece) în sistem binar în virgulă mobilă în reprezentarea IEEE 754, precizie simplă pe 32 de biți:

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

    |-25,347| = 25,347;

  • 2. Convertește întâi partea întreagă, 25. Împarte î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;
    • 25 : 2 = 12 + 1;
    • 12 : 2 = 6 + 0;
    • 6 : 2 = 3 + 0;
    • 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:

    25(10) = 1 1001(2)

  • 4. Convertește apoi partea fracționară 0,347. Î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,347 × 2 = 0 + 0,694;
    • 2) 0,694 × 2 = 1 + 0,388;
    • 3) 0,388 × 2 = 0 + 0,776;
    • 4) 0,776 × 2 = 1 + 0,552;
    • 5) 0,552 × 2 = 1 + 0,104;
    • 6) 0,104 × 2 = 0 + 0,208
    • 7) 0,208 × 2 = 0 + 0,416;
    • 8) 0,416 × 2 = 0 + 0,832;
    • 9) 0,832 × 2 = 1 + 0,664;
    • 10) 0,664 × 2 = 1 + 0,328;
    • 11) 0,328 × 2 = 0 + 0,656;
    • 12) 0,656 × 2 = 1 + 0,312;
    • 13) 0,312 × 2 = 0 + 0,624;
    • 14) 0,624 × 2 = 1 + 0,248;
    • 15) 0,248 × 2 = 0 + 0,496;
    • 16) 0,496 × 2 = 0 + 0,992;
    • 17) 0,992 × 2 = 1 + 0,984;
    • 18) 0,984 × 2 = 1 + 0,968;
    • 19) 0,968 × 2 = 1 + 0,936;
    • 20) 0,936 × 2 = 1 + 0,872;
    • 21) 0,872 × 2 = 1 + 0,744;
    • 22) 0,744 × 2 = 1 + 0,488;
    • 23) 0,488 × 2 = 0 + 0,976;
    • 24) 0,976 × 2 = 1 + 0,952;
    • 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ă = 23) și a fost găsită prin calcule 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,347(10) = 0,0101 1000 1101 0100 1111 1101(2)

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

    25,347(10) = 1 1001,0101 1000 1101 0100 1111 1101(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':

    25,347(10) =
    1 1001,0101 1000 1101 0100 1111 1101(2) =
    1 1001,0101 1000 1101 0100 1111 1101(2) × 20 =
    1,1001 0101 1000 1101 0100 1111 1101(2) × 24

  • 8. Până în acest moment avem următoarele elemente ce vor alcătui numărul binar în reprezentare IEEE 754, precizie simplă (32 biți):

    Semn: 1 (număr negativ);

    Exponent (neajustat): 4;

    Mantisă (nenormalizată): 1,1001 0101 1000 1101 0100 1111 1101;

  • 9. Ajustează exponentul folosind reprezentarea deplasată pe 8 biți apoi convertește-l din zecimal (baza 10) în binar (baza 2) pe 8 biți, folosind tehnica împărțirii repetate la 2, așa cum am mai arătat mai sus, ținând minte toate resturile, ce vor alcătui numărul în binar:

    Exponent (ajustat) = Exponent (neajustat) + 2(8-1) - 1 = (4 + 127)(10) = 131(10) =
    1000 0011(2)

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

    Mantisă (nenormalizată): 1,1001 0101 1000 1101 0100 1111 1101

    Mantisă (normalizată): 100 1010 1100 0110 1010 0111

  • Concluzia:

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

    Exponent (8 biți) = 1000 0011

    Mantisă (23 biți) = 100 1010 1100 0110 1010 0111

  • Numărul -25,347 convertit din sistem zecimal (baza 10) în binar pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754 este:
    1 - 1000 0011 - 100 1010 1100 0110 1010 0111