-0,000 000 000 741 4 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere -0,000 000 000 741 4(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
-0,000 000 000 741 4(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. Începe cu versiunea pozitivă a numărului:

|-0,000 000 000 741 4| = 0,000 000 000 741 4


2. Întâi convertește în binar (în baza 2) partea întreagă: 0.
Î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;
  • 0 : 2 = 0 + 0;

3. 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.

0(10) =


0(2)


4. Convertește în binar (baza 2) partea fracționară: 0,000 000 000 741 4.

Î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,000 000 000 741 4 × 2 = 0 + 0,000 000 001 482 8;
  • 2) 0,000 000 001 482 8 × 2 = 0 + 0,000 000 002 965 6;
  • 3) 0,000 000 002 965 6 × 2 = 0 + 0,000 000 005 931 2;
  • 4) 0,000 000 005 931 2 × 2 = 0 + 0,000 000 011 862 4;
  • 5) 0,000 000 011 862 4 × 2 = 0 + 0,000 000 023 724 8;
  • 6) 0,000 000 023 724 8 × 2 = 0 + 0,000 000 047 449 6;
  • 7) 0,000 000 047 449 6 × 2 = 0 + 0,000 000 094 899 2;
  • 8) 0,000 000 094 899 2 × 2 = 0 + 0,000 000 189 798 4;
  • 9) 0,000 000 189 798 4 × 2 = 0 + 0,000 000 379 596 8;
  • 10) 0,000 000 379 596 8 × 2 = 0 + 0,000 000 759 193 6;
  • 11) 0,000 000 759 193 6 × 2 = 0 + 0,000 001 518 387 2;
  • 12) 0,000 001 518 387 2 × 2 = 0 + 0,000 003 036 774 4;
  • 13) 0,000 003 036 774 4 × 2 = 0 + 0,000 006 073 548 8;
  • 14) 0,000 006 073 548 8 × 2 = 0 + 0,000 012 147 097 6;
  • 15) 0,000 012 147 097 6 × 2 = 0 + 0,000 024 294 195 2;
  • 16) 0,000 024 294 195 2 × 2 = 0 + 0,000 048 588 390 4;
  • 17) 0,000 048 588 390 4 × 2 = 0 + 0,000 097 176 780 8;
  • 18) 0,000 097 176 780 8 × 2 = 0 + 0,000 194 353 561 6;
  • 19) 0,000 194 353 561 6 × 2 = 0 + 0,000 388 707 123 2;
  • 20) 0,000 388 707 123 2 × 2 = 0 + 0,000 777 414 246 4;
  • 21) 0,000 777 414 246 4 × 2 = 0 + 0,001 554 828 492 8;
  • 22) 0,001 554 828 492 8 × 2 = 0 + 0,003 109 656 985 6;
  • 23) 0,003 109 656 985 6 × 2 = 0 + 0,006 219 313 971 2;
  • 24) 0,006 219 313 971 2 × 2 = 0 + 0,012 438 627 942 4;
  • 25) 0,012 438 627 942 4 × 2 = 0 + 0,024 877 255 884 8;
  • 26) 0,024 877 255 884 8 × 2 = 0 + 0,049 754 511 769 6;
  • 27) 0,049 754 511 769 6 × 2 = 0 + 0,099 509 023 539 2;
  • 28) 0,099 509 023 539 2 × 2 = 0 + 0,199 018 047 078 4;
  • 29) 0,199 018 047 078 4 × 2 = 0 + 0,398 036 094 156 8;
  • 30) 0,398 036 094 156 8 × 2 = 0 + 0,796 072 188 313 6;
  • 31) 0,796 072 188 313 6 × 2 = 1 + 0,592 144 376 627 2;
  • 32) 0,592 144 376 627 2 × 2 = 1 + 0,184 288 753 254 4;
  • 33) 0,184 288 753 254 4 × 2 = 0 + 0,368 577 506 508 8;
  • 34) 0,368 577 506 508 8 × 2 = 0 + 0,737 155 013 017 6;
  • 35) 0,737 155 013 017 6 × 2 = 1 + 0,474 310 026 035 2;
  • 36) 0,474 310 026 035 2 × 2 = 0 + 0,948 620 052 070 4;
  • 37) 0,948 620 052 070 4 × 2 = 1 + 0,897 240 104 140 8;
  • 38) 0,897 240 104 140 8 × 2 = 1 + 0,794 480 208 281 6;
  • 39) 0,794 480 208 281 6 × 2 = 1 + 0,588 960 416 563 2;
  • 40) 0,588 960 416 563 2 × 2 = 1 + 0,177 920 833 126 4;
  • 41) 0,177 920 833 126 4 × 2 = 0 + 0,355 841 666 252 8;
  • 42) 0,355 841 666 252 8 × 2 = 0 + 0,711 683 332 505 6;
  • 43) 0,711 683 332 505 6 × 2 = 1 + 0,423 366 665 011 2;
  • 44) 0,423 366 665 011 2 × 2 = 0 + 0,846 733 330 022 4;
  • 45) 0,846 733 330 022 4 × 2 = 1 + 0,693 466 660 044 8;
  • 46) 0,693 466 660 044 8 × 2 = 1 + 0,386 933 320 089 6;
  • 47) 0,386 933 320 089 6 × 2 = 0 + 0,773 866 640 179 2;
  • 48) 0,773 866 640 179 2 × 2 = 1 + 0,547 733 280 358 4;
  • 49) 0,547 733 280 358 4 × 2 = 1 + 0,095 466 560 716 8;
  • 50) 0,095 466 560 716 8 × 2 = 0 + 0,190 933 121 433 6;
  • 51) 0,190 933 121 433 6 × 2 = 0 + 0,381 866 242 867 2;
  • 52) 0,381 866 242 867 2 × 2 = 0 + 0,763 732 485 734 4;
  • 53) 0,763 732 485 734 4 × 2 = 1 + 0,527 464 971 468 8;
  • 54) 0,527 464 971 468 8 × 2 = 1 + 0,054 929 942 937 6;

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


5. 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,000 000 000 741 4(10) =


0,0000 0000 0000 0000 0000 0000 0000 0011 0010 1111 0010 1101 1000 11(2)

6. Numărul pozitiv înainte de normalizare:

0,000 000 000 741 4(10) =


0,0000 0000 0000 0000 0000 0000 0000 0011 0010 1111 0010 1101 1000 11(2)

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

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


0,000 000 000 741 4(10) =


0,0000 0000 0000 0000 0000 0000 0000 0011 0010 1111 0010 1101 1000 11(2) =


0,0000 0000 0000 0000 0000 0000 0000 0011 0010 1111 0010 1101 1000 11(2) × 20 =


1,1001 0111 1001 0110 1100 011(2) × 2-31


8. 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 1 (un număr negativ)


Exponent (neajustat): -31


Mantisă (nenormalizată):
1,1001 0111 1001 0110 1100 011


9. Ajustează exponentul.

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


Exponent (ajustat) =


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


-31 + 2(8-1) - 1 =


(-31 + 127)(10) =


96(10)


10. 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;
  • 96 : 2 = 48 + 0;
  • 48 : 2 = 24 + 0;
  • 24 : 2 = 12 + 0;
  • 12 : 2 = 6 + 0;
  • 6 : 2 = 3 + 0;
  • 3 : 2 = 1 + 1;
  • 1 : 2 = 0 + 1;

11. 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) =


96(10) =


0110 0000(2)


12. 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, doar dacă e necesar (nu e cazul aici).


Mantisă (normalizată) =


1. 100 1011 1100 1011 0110 0011 =


100 1011 1100 1011 0110 0011


13. 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) =
1 (un număr negativ)


Exponent (8 biți) =
0110 0000


Mantisă (23 biți) =
100 1011 1100 1011 0110 0011


Numărul zecimal -0,000 000 000 741 4 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

1 - 0110 0000 - 100 1011 1100 1011 0110 0011


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