1 231 231 231 231 231 231 231 649 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 1 231 231 231 231 231 231 231 649(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
1 231 231 231 231 231 231 231 649(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;
  • 1 231 231 231 231 231 231 231 649 : 2 = 615 615 615 615 615 615 615 824 + 1;
  • 615 615 615 615 615 615 615 824 : 2 = 307 807 807 807 807 807 807 912 + 0;
  • 307 807 807 807 807 807 807 912 : 2 = 153 903 903 903 903 903 903 956 + 0;
  • 153 903 903 903 903 903 903 956 : 2 = 76 951 951 951 951 951 951 978 + 0;
  • 76 951 951 951 951 951 951 978 : 2 = 38 475 975 975 975 975 975 989 + 0;
  • 38 475 975 975 975 975 975 989 : 2 = 19 237 987 987 987 987 987 994 + 1;
  • 19 237 987 987 987 987 987 994 : 2 = 9 618 993 993 993 993 993 997 + 0;
  • 9 618 993 993 993 993 993 997 : 2 = 4 809 496 996 996 996 996 998 + 1;
  • 4 809 496 996 996 996 996 998 : 2 = 2 404 748 498 498 498 498 499 + 0;
  • 2 404 748 498 498 498 498 499 : 2 = 1 202 374 249 249 249 249 249 + 1;
  • 1 202 374 249 249 249 249 249 : 2 = 601 187 124 624 624 624 624 + 1;
  • 601 187 124 624 624 624 624 : 2 = 300 593 562 312 312 312 312 + 0;
  • 300 593 562 312 312 312 312 : 2 = 150 296 781 156 156 156 156 + 0;
  • 150 296 781 156 156 156 156 : 2 = 75 148 390 578 078 078 078 + 0;
  • 75 148 390 578 078 078 078 : 2 = 37 574 195 289 039 039 039 + 0;
  • 37 574 195 289 039 039 039 : 2 = 18 787 097 644 519 519 519 + 1;
  • 18 787 097 644 519 519 519 : 2 = 9 393 548 822 259 759 759 + 1;
  • 9 393 548 822 259 759 759 : 2 = 4 696 774 411 129 879 879 + 1;
  • 4 696 774 411 129 879 879 : 2 = 2 348 387 205 564 939 939 + 1;
  • 2 348 387 205 564 939 939 : 2 = 1 174 193 602 782 469 969 + 1;
  • 1 174 193 602 782 469 969 : 2 = 587 096 801 391 234 984 + 1;
  • 587 096 801 391 234 984 : 2 = 293 548 400 695 617 492 + 0;
  • 293 548 400 695 617 492 : 2 = 146 774 200 347 808 746 + 0;
  • 146 774 200 347 808 746 : 2 = 73 387 100 173 904 373 + 0;
  • 73 387 100 173 904 373 : 2 = 36 693 550 086 952 186 + 1;
  • 36 693 550 086 952 186 : 2 = 18 346 775 043 476 093 + 0;
  • 18 346 775 043 476 093 : 2 = 9 173 387 521 738 046 + 1;
  • 9 173 387 521 738 046 : 2 = 4 586 693 760 869 023 + 0;
  • 4 586 693 760 869 023 : 2 = 2 293 346 880 434 511 + 1;
  • 2 293 346 880 434 511 : 2 = 1 146 673 440 217 255 + 1;
  • 1 146 673 440 217 255 : 2 = 573 336 720 108 627 + 1;
  • 573 336 720 108 627 : 2 = 286 668 360 054 313 + 1;
  • 286 668 360 054 313 : 2 = 143 334 180 027 156 + 1;
  • 143 334 180 027 156 : 2 = 71 667 090 013 578 + 0;
  • 71 667 090 013 578 : 2 = 35 833 545 006 789 + 0;
  • 35 833 545 006 789 : 2 = 17 916 772 503 394 + 1;
  • 17 916 772 503 394 : 2 = 8 958 386 251 697 + 0;
  • 8 958 386 251 697 : 2 = 4 479 193 125 848 + 1;
  • 4 479 193 125 848 : 2 = 2 239 596 562 924 + 0;
  • 2 239 596 562 924 : 2 = 1 119 798 281 462 + 0;
  • 1 119 798 281 462 : 2 = 559 899 140 731 + 0;
  • 559 899 140 731 : 2 = 279 949 570 365 + 1;
  • 279 949 570 365 : 2 = 139 974 785 182 + 1;
  • 139 974 785 182 : 2 = 69 987 392 591 + 0;
  • 69 987 392 591 : 2 = 34 993 696 295 + 1;
  • 34 993 696 295 : 2 = 17 496 848 147 + 1;
  • 17 496 848 147 : 2 = 8 748 424 073 + 1;
  • 8 748 424 073 : 2 = 4 374 212 036 + 1;
  • 4 374 212 036 : 2 = 2 187 106 018 + 0;
  • 2 187 106 018 : 2 = 1 093 553 009 + 0;
  • 1 093 553 009 : 2 = 546 776 504 + 1;
  • 546 776 504 : 2 = 273 388 252 + 0;
  • 273 388 252 : 2 = 136 694 126 + 0;
  • 136 694 126 : 2 = 68 347 063 + 0;
  • 68 347 063 : 2 = 34 173 531 + 1;
  • 34 173 531 : 2 = 17 086 765 + 1;
  • 17 086 765 : 2 = 8 543 382 + 1;
  • 8 543 382 : 2 = 4 271 691 + 0;
  • 4 271 691 : 2 = 2 135 845 + 1;
  • 2 135 845 : 2 = 1 067 922 + 1;
  • 1 067 922 : 2 = 533 961 + 0;
  • 533 961 : 2 = 266 980 + 1;
  • 266 980 : 2 = 133 490 + 0;
  • 133 490 : 2 = 66 745 + 0;
  • 66 745 : 2 = 33 372 + 1;
  • 33 372 : 2 = 16 686 + 0;
  • 16 686 : 2 = 8 343 + 0;
  • 8 343 : 2 = 4 171 + 1;
  • 4 171 : 2 = 2 085 + 1;
  • 2 085 : 2 = 1 042 + 1;
  • 1 042 : 2 = 521 + 0;
  • 521 : 2 = 260 + 1;
  • 260 : 2 = 130 + 0;
  • 130 : 2 = 65 + 0;
  • 65 : 2 = 32 + 1;
  • 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.

1 231 231 231 231 231 231 231 649(10) =


1 0000 0100 1011 1001 0010 1101 1100 0100 1111 0110 0010 1001 1111 0101 0001 1111 1000 0110 1010 0001(2)


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

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


1 231 231 231 231 231 231 231 649(10) =


1 0000 0100 1011 1001 0010 1101 1100 0100 1111 0110 0010 1001 1111 0101 0001 1111 1000 0110 1010 0001(2) =


1 0000 0100 1011 1001 0010 1101 1100 0100 1111 0110 0010 1001 1111 0101 0001 1111 1000 0110 1010 0001(2) × 20 =


1,0000 0100 1011 1001 0010 1101 1100 0100 1111 0110 0010 1001 1111 0101 0001 1111 1000 0110 1010 0001(2) × 280


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): 80


Mantisă (nenormalizată):
1,0000 0100 1011 1001 0010 1101 1100 0100 1111 0110 0010 1001 1111 0101 0001 1111 1000 0110 1010 0001


5. Ajustează exponentul.

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


Exponent (ajustat) =


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


80 + 2(8-1) - 1 =


(80 + 127)(10) =


207(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;
  • 207 : 2 = 103 + 1;
  • 103 : 2 = 51 + 1;
  • 51 : 2 = 25 + 1;
  • 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) =


207(10) =


1100 1111(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 0010 0101 1100 1001 0110 1 1100 0100 1111 0110 0010 1001 1111 0101 0001 1111 1000 0110 1010 0001 =


000 0010 0101 1100 1001 0110


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 1111


Mantisă (23 biți) =
000 0010 0101 1100 1001 0110


Numărul zecimal 1 231 231 231 231 231 231 231 649 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1100 1111 - 000 0010 0101 1100 1001 0110


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