10 111 110 111 010 000 000 000 000 873 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 10 111 110 111 010 000 000 000 000 873(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 111 110 111 010 000 000 000 000 873(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 111 110 111 010 000 000 000 000 873 : 2 = 5 055 555 055 505 000 000 000 000 436 + 1;
  • 5 055 555 055 505 000 000 000 000 436 : 2 = 2 527 777 527 752 500 000 000 000 218 + 0;
  • 2 527 777 527 752 500 000 000 000 218 : 2 = 1 263 888 763 876 250 000 000 000 109 + 0;
  • 1 263 888 763 876 250 000 000 000 109 : 2 = 631 944 381 938 125 000 000 000 054 + 1;
  • 631 944 381 938 125 000 000 000 054 : 2 = 315 972 190 969 062 500 000 000 027 + 0;
  • 315 972 190 969 062 500 000 000 027 : 2 = 157 986 095 484 531 250 000 000 013 + 1;
  • 157 986 095 484 531 250 000 000 013 : 2 = 78 993 047 742 265 625 000 000 006 + 1;
  • 78 993 047 742 265 625 000 000 006 : 2 = 39 496 523 871 132 812 500 000 003 + 0;
  • 39 496 523 871 132 812 500 000 003 : 2 = 19 748 261 935 566 406 250 000 001 + 1;
  • 19 748 261 935 566 406 250 000 001 : 2 = 9 874 130 967 783 203 125 000 000 + 1;
  • 9 874 130 967 783 203 125 000 000 : 2 = 4 937 065 483 891 601 562 500 000 + 0;
  • 4 937 065 483 891 601 562 500 000 : 2 = 2 468 532 741 945 800 781 250 000 + 0;
  • 2 468 532 741 945 800 781 250 000 : 2 = 1 234 266 370 972 900 390 625 000 + 0;
  • 1 234 266 370 972 900 390 625 000 : 2 = 617 133 185 486 450 195 312 500 + 0;
  • 617 133 185 486 450 195 312 500 : 2 = 308 566 592 743 225 097 656 250 + 0;
  • 308 566 592 743 225 097 656 250 : 2 = 154 283 296 371 612 548 828 125 + 0;
  • 154 283 296 371 612 548 828 125 : 2 = 77 141 648 185 806 274 414 062 + 1;
  • 77 141 648 185 806 274 414 062 : 2 = 38 570 824 092 903 137 207 031 + 0;
  • 38 570 824 092 903 137 207 031 : 2 = 19 285 412 046 451 568 603 515 + 1;
  • 19 285 412 046 451 568 603 515 : 2 = 9 642 706 023 225 784 301 757 + 1;
  • 9 642 706 023 225 784 301 757 : 2 = 4 821 353 011 612 892 150 878 + 1;
  • 4 821 353 011 612 892 150 878 : 2 = 2 410 676 505 806 446 075 439 + 0;
  • 2 410 676 505 806 446 075 439 : 2 = 1 205 338 252 903 223 037 719 + 1;
  • 1 205 338 252 903 223 037 719 : 2 = 602 669 126 451 611 518 859 + 1;
  • 602 669 126 451 611 518 859 : 2 = 301 334 563 225 805 759 429 + 1;
  • 301 334 563 225 805 759 429 : 2 = 150 667 281 612 902 879 714 + 1;
  • 150 667 281 612 902 879 714 : 2 = 75 333 640 806 451 439 857 + 0;
  • 75 333 640 806 451 439 857 : 2 = 37 666 820 403 225 719 928 + 1;
  • 37 666 820 403 225 719 928 : 2 = 18 833 410 201 612 859 964 + 0;
  • 18 833 410 201 612 859 964 : 2 = 9 416 705 100 806 429 982 + 0;
  • 9 416 705 100 806 429 982 : 2 = 4 708 352 550 403 214 991 + 0;
  • 4 708 352 550 403 214 991 : 2 = 2 354 176 275 201 607 495 + 1;
  • 2 354 176 275 201 607 495 : 2 = 1 177 088 137 600 803 747 + 1;
  • 1 177 088 137 600 803 747 : 2 = 588 544 068 800 401 873 + 1;
  • 588 544 068 800 401 873 : 2 = 294 272 034 400 200 936 + 1;
  • 294 272 034 400 200 936 : 2 = 147 136 017 200 100 468 + 0;
  • 147 136 017 200 100 468 : 2 = 73 568 008 600 050 234 + 0;
  • 73 568 008 600 050 234 : 2 = 36 784 004 300 025 117 + 0;
  • 36 784 004 300 025 117 : 2 = 18 392 002 150 012 558 + 1;
  • 18 392 002 150 012 558 : 2 = 9 196 001 075 006 279 + 0;
  • 9 196 001 075 006 279 : 2 = 4 598 000 537 503 139 + 1;
  • 4 598 000 537 503 139 : 2 = 2 299 000 268 751 569 + 1;
  • 2 299 000 268 751 569 : 2 = 1 149 500 134 375 784 + 1;
  • 1 149 500 134 375 784 : 2 = 574 750 067 187 892 + 0;
  • 574 750 067 187 892 : 2 = 287 375 033 593 946 + 0;
  • 287 375 033 593 946 : 2 = 143 687 516 796 973 + 0;
  • 143 687 516 796 973 : 2 = 71 843 758 398 486 + 1;
  • 71 843 758 398 486 : 2 = 35 921 879 199 243 + 0;
  • 35 921 879 199 243 : 2 = 17 960 939 599 621 + 1;
  • 17 960 939 599 621 : 2 = 8 980 469 799 810 + 1;
  • 8 980 469 799 810 : 2 = 4 490 234 899 905 + 0;
  • 4 490 234 899 905 : 2 = 2 245 117 449 952 + 1;
  • 2 245 117 449 952 : 2 = 1 122 558 724 976 + 0;
  • 1 122 558 724 976 : 2 = 561 279 362 488 + 0;
  • 561 279 362 488 : 2 = 280 639 681 244 + 0;
  • 280 639 681 244 : 2 = 140 319 840 622 + 0;
  • 140 319 840 622 : 2 = 70 159 920 311 + 0;
  • 70 159 920 311 : 2 = 35 079 960 155 + 1;
  • 35 079 960 155 : 2 = 17 539 980 077 + 1;
  • 17 539 980 077 : 2 = 8 769 990 038 + 1;
  • 8 769 990 038 : 2 = 4 384 995 019 + 0;
  • 4 384 995 019 : 2 = 2 192 497 509 + 1;
  • 2 192 497 509 : 2 = 1 096 248 754 + 1;
  • 1 096 248 754 : 2 = 548 124 377 + 0;
  • 548 124 377 : 2 = 274 062 188 + 1;
  • 274 062 188 : 2 = 137 031 094 + 0;
  • 137 031 094 : 2 = 68 515 547 + 0;
  • 68 515 547 : 2 = 34 257 773 + 1;
  • 34 257 773 : 2 = 17 128 886 + 1;
  • 17 128 886 : 2 = 8 564 443 + 0;
  • 8 564 443 : 2 = 4 282 221 + 1;
  • 4 282 221 : 2 = 2 141 110 + 1;
  • 2 141 110 : 2 = 1 070 555 + 0;
  • 1 070 555 : 2 = 535 277 + 1;
  • 535 277 : 2 = 267 638 + 1;
  • 267 638 : 2 = 133 819 + 0;
  • 133 819 : 2 = 66 909 + 1;
  • 66 909 : 2 = 33 454 + 1;
  • 33 454 : 2 = 16 727 + 0;
  • 16 727 : 2 = 8 363 + 1;
  • 8 363 : 2 = 4 181 + 1;
  • 4 181 : 2 = 2 090 + 1;
  • 2 090 : 2 = 1 045 + 0;
  • 1 045 : 2 = 522 + 1;
  • 522 : 2 = 261 + 0;
  • 261 : 2 = 130 + 1;
  • 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.

10 111 110 111 010 000 000 000 000 873(10) =


10 0000 1010 1011 1011 0110 1101 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0110 1001(2)


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

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


10 111 110 111 010 000 000 000 000 873(10) =


10 0000 1010 1011 1011 0110 1101 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0110 1001(2) =


10 0000 1010 1011 1011 0110 1101 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0110 1001(2) × 20 =


1,0000 0101 0101 1101 1011 0110 1100 1011 0111 0000 0101 1010 0011 1010 0011 1100 0101 1110 1110 1000 0001 1011 0100 1(2) × 293


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


Mantisă (nenormalizată):
1,0000 0101 0101 1101 1011 0110 1100 1011 0111 0000 0101 1010 0011 1010 0011 1100 0101 1110 1110 1000 0001 1011 0100 1


5. Ajustează exponentul.

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


Exponent (ajustat) =


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


93 + 2(8-1) - 1 =


(93 + 127)(10) =


220(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;
  • 220 : 2 = 110 + 0;
  • 110 : 2 = 55 + 0;
  • 55 : 2 = 27 + 1;
  • 27 : 2 = 13 + 1;
  • 13 : 2 = 6 + 1;
  • 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) =


220(10) =


1101 1100(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 1010 1110 1101 1011 01 1001 0110 1110 0000 1011 0100 0111 0100 0111 1000 1011 1101 1101 0000 0011 0110 1001 =


000 0010 1010 1110 1101 1011


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) =
1101 1100


Mantisă (23 biți) =
000 0010 1010 1110 1101 1011


Numărul zecimal 10 111 110 111 010 000 000 000 000 873 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1101 1100 - 000 0010 1010 1110 1101 1011

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