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

Scriere -0,000 000 000 742 121 1(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 742 121 1(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 742 121 1| = 0,000 000 000 742 121 1


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 742 121 1.

Î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 742 121 1 × 2 = 0 + 0,000 000 001 484 242 2;
  • 2) 0,000 000 001 484 242 2 × 2 = 0 + 0,000 000 002 968 484 4;
  • 3) 0,000 000 002 968 484 4 × 2 = 0 + 0,000 000 005 936 968 8;
  • 4) 0,000 000 005 936 968 8 × 2 = 0 + 0,000 000 011 873 937 6;
  • 5) 0,000 000 011 873 937 6 × 2 = 0 + 0,000 000 023 747 875 2;
  • 6) 0,000 000 023 747 875 2 × 2 = 0 + 0,000 000 047 495 750 4;
  • 7) 0,000 000 047 495 750 4 × 2 = 0 + 0,000 000 094 991 500 8;
  • 8) 0,000 000 094 991 500 8 × 2 = 0 + 0,000 000 189 983 001 6;
  • 9) 0,000 000 189 983 001 6 × 2 = 0 + 0,000 000 379 966 003 2;
  • 10) 0,000 000 379 966 003 2 × 2 = 0 + 0,000 000 759 932 006 4;
  • 11) 0,000 000 759 932 006 4 × 2 = 0 + 0,000 001 519 864 012 8;
  • 12) 0,000 001 519 864 012 8 × 2 = 0 + 0,000 003 039 728 025 6;
  • 13) 0,000 003 039 728 025 6 × 2 = 0 + 0,000 006 079 456 051 2;
  • 14) 0,000 006 079 456 051 2 × 2 = 0 + 0,000 012 158 912 102 4;
  • 15) 0,000 012 158 912 102 4 × 2 = 0 + 0,000 024 317 824 204 8;
  • 16) 0,000 024 317 824 204 8 × 2 = 0 + 0,000 048 635 648 409 6;
  • 17) 0,000 048 635 648 409 6 × 2 = 0 + 0,000 097 271 296 819 2;
  • 18) 0,000 097 271 296 819 2 × 2 = 0 + 0,000 194 542 593 638 4;
  • 19) 0,000 194 542 593 638 4 × 2 = 0 + 0,000 389 085 187 276 8;
  • 20) 0,000 389 085 187 276 8 × 2 = 0 + 0,000 778 170 374 553 6;
  • 21) 0,000 778 170 374 553 6 × 2 = 0 + 0,001 556 340 749 107 2;
  • 22) 0,001 556 340 749 107 2 × 2 = 0 + 0,003 112 681 498 214 4;
  • 23) 0,003 112 681 498 214 4 × 2 = 0 + 0,006 225 362 996 428 8;
  • 24) 0,006 225 362 996 428 8 × 2 = 0 + 0,012 450 725 992 857 6;
  • 25) 0,012 450 725 992 857 6 × 2 = 0 + 0,024 901 451 985 715 2;
  • 26) 0,024 901 451 985 715 2 × 2 = 0 + 0,049 802 903 971 430 4;
  • 27) 0,049 802 903 971 430 4 × 2 = 0 + 0,099 605 807 942 860 8;
  • 28) 0,099 605 807 942 860 8 × 2 = 0 + 0,199 211 615 885 721 6;
  • 29) 0,199 211 615 885 721 6 × 2 = 0 + 0,398 423 231 771 443 2;
  • 30) 0,398 423 231 771 443 2 × 2 = 0 + 0,796 846 463 542 886 4;
  • 31) 0,796 846 463 542 886 4 × 2 = 1 + 0,593 692 927 085 772 8;
  • 32) 0,593 692 927 085 772 8 × 2 = 1 + 0,187 385 854 171 545 6;
  • 33) 0,187 385 854 171 545 6 × 2 = 0 + 0,374 771 708 343 091 2;
  • 34) 0,374 771 708 343 091 2 × 2 = 0 + 0,749 543 416 686 182 4;
  • 35) 0,749 543 416 686 182 4 × 2 = 1 + 0,499 086 833 372 364 8;
  • 36) 0,499 086 833 372 364 8 × 2 = 0 + 0,998 173 666 744 729 6;
  • 37) 0,998 173 666 744 729 6 × 2 = 1 + 0,996 347 333 489 459 2;
  • 38) 0,996 347 333 489 459 2 × 2 = 1 + 0,992 694 666 978 918 4;
  • 39) 0,992 694 666 978 918 4 × 2 = 1 + 0,985 389 333 957 836 8;
  • 40) 0,985 389 333 957 836 8 × 2 = 1 + 0,970 778 667 915 673 6;
  • 41) 0,970 778 667 915 673 6 × 2 = 1 + 0,941 557 335 831 347 2;
  • 42) 0,941 557 335 831 347 2 × 2 = 1 + 0,883 114 671 662 694 4;
  • 43) 0,883 114 671 662 694 4 × 2 = 1 + 0,766 229 343 325 388 8;
  • 44) 0,766 229 343 325 388 8 × 2 = 1 + 0,532 458 686 650 777 6;
  • 45) 0,532 458 686 650 777 6 × 2 = 1 + 0,064 917 373 301 555 2;
  • 46) 0,064 917 373 301 555 2 × 2 = 0 + 0,129 834 746 603 110 4;
  • 47) 0,129 834 746 603 110 4 × 2 = 0 + 0,259 669 493 206 220 8;
  • 48) 0,259 669 493 206 220 8 × 2 = 0 + 0,519 338 986 412 441 6;
  • 49) 0,519 338 986 412 441 6 × 2 = 1 + 0,038 677 972 824 883 2;
  • 50) 0,038 677 972 824 883 2 × 2 = 0 + 0,077 355 945 649 766 4;
  • 51) 0,077 355 945 649 766 4 × 2 = 0 + 0,154 711 891 299 532 8;
  • 52) 0,154 711 891 299 532 8 × 2 = 0 + 0,309 423 782 599 065 6;
  • 53) 0,309 423 782 599 065 6 × 2 = 0 + 0,618 847 565 198 131 2;
  • 54) 0,618 847 565 198 131 2 × 2 = 1 + 0,237 695 130 396 262 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).


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 742 121 1(10) =


0,0000 0000 0000 0000 0000 0000 0000 0011 0010 1111 1111 1000 1000 01(2)

6. Numărul pozitiv înainte de normalizare:

0,000 000 000 742 121 1(10) =


0,0000 0000 0000 0000 0000 0000 0000 0011 0010 1111 1111 1000 1000 01(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 742 121 1(10) =


0,0000 0000 0000 0000 0000 0000 0000 0011 0010 1111 1111 1000 1000 01(2) =


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


1,1001 0111 1111 1100 0100 001(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 1111 1100 0100 001


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 1111 1110 0010 0001 =


100 1011 1111 1110 0010 0001


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 1111 1110 0010 0001


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

1 - 0110 0000 - 100 1011 1111 1110 0010 0001


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