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

Scriere 10 010 111 111 110 000 000 000 001 480(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 010 111 111 110 000 000 000 001 480(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 010 111 111 110 000 000 000 001 480 : 2 = 5 005 055 555 555 000 000 000 000 740 + 0;
  • 5 005 055 555 555 000 000 000 000 740 : 2 = 2 502 527 777 777 500 000 000 000 370 + 0;
  • 2 502 527 777 777 500 000 000 000 370 : 2 = 1 251 263 888 888 750 000 000 000 185 + 0;
  • 1 251 263 888 888 750 000 000 000 185 : 2 = 625 631 944 444 375 000 000 000 092 + 1;
  • 625 631 944 444 375 000 000 000 092 : 2 = 312 815 972 222 187 500 000 000 046 + 0;
  • 312 815 972 222 187 500 000 000 046 : 2 = 156 407 986 111 093 750 000 000 023 + 0;
  • 156 407 986 111 093 750 000 000 023 : 2 = 78 203 993 055 546 875 000 000 011 + 1;
  • 78 203 993 055 546 875 000 000 011 : 2 = 39 101 996 527 773 437 500 000 005 + 1;
  • 39 101 996 527 773 437 500 000 005 : 2 = 19 550 998 263 886 718 750 000 002 + 1;
  • 19 550 998 263 886 718 750 000 002 : 2 = 9 775 499 131 943 359 375 000 001 + 0;
  • 9 775 499 131 943 359 375 000 001 : 2 = 4 887 749 565 971 679 687 500 000 + 1;
  • 4 887 749 565 971 679 687 500 000 : 2 = 2 443 874 782 985 839 843 750 000 + 0;
  • 2 443 874 782 985 839 843 750 000 : 2 = 1 221 937 391 492 919 921 875 000 + 0;
  • 1 221 937 391 492 919 921 875 000 : 2 = 610 968 695 746 459 960 937 500 + 0;
  • 610 968 695 746 459 960 937 500 : 2 = 305 484 347 873 229 980 468 750 + 0;
  • 305 484 347 873 229 980 468 750 : 2 = 152 742 173 936 614 990 234 375 + 0;
  • 152 742 173 936 614 990 234 375 : 2 = 76 371 086 968 307 495 117 187 + 1;
  • 76 371 086 968 307 495 117 187 : 2 = 38 185 543 484 153 747 558 593 + 1;
  • 38 185 543 484 153 747 558 593 : 2 = 19 092 771 742 076 873 779 296 + 1;
  • 19 092 771 742 076 873 779 296 : 2 = 9 546 385 871 038 436 889 648 + 0;
  • 9 546 385 871 038 436 889 648 : 2 = 4 773 192 935 519 218 444 824 + 0;
  • 4 773 192 935 519 218 444 824 : 2 = 2 386 596 467 759 609 222 412 + 0;
  • 2 386 596 467 759 609 222 412 : 2 = 1 193 298 233 879 804 611 206 + 0;
  • 1 193 298 233 879 804 611 206 : 2 = 596 649 116 939 902 305 603 + 0;
  • 596 649 116 939 902 305 603 : 2 = 298 324 558 469 951 152 801 + 1;
  • 298 324 558 469 951 152 801 : 2 = 149 162 279 234 975 576 400 + 1;
  • 149 162 279 234 975 576 400 : 2 = 74 581 139 617 487 788 200 + 0;
  • 74 581 139 617 487 788 200 : 2 = 37 290 569 808 743 894 100 + 0;
  • 37 290 569 808 743 894 100 : 2 = 18 645 284 904 371 947 050 + 0;
  • 18 645 284 904 371 947 050 : 2 = 9 322 642 452 185 973 525 + 0;
  • 9 322 642 452 185 973 525 : 2 = 4 661 321 226 092 986 762 + 1;
  • 4 661 321 226 092 986 762 : 2 = 2 330 660 613 046 493 381 + 0;
  • 2 330 660 613 046 493 381 : 2 = 1 165 330 306 523 246 690 + 1;
  • 1 165 330 306 523 246 690 : 2 = 582 665 153 261 623 345 + 0;
  • 582 665 153 261 623 345 : 2 = 291 332 576 630 811 672 + 1;
  • 291 332 576 630 811 672 : 2 = 145 666 288 315 405 836 + 0;
  • 145 666 288 315 405 836 : 2 = 72 833 144 157 702 918 + 0;
  • 72 833 144 157 702 918 : 2 = 36 416 572 078 851 459 + 0;
  • 36 416 572 078 851 459 : 2 = 18 208 286 039 425 729 + 1;
  • 18 208 286 039 425 729 : 2 = 9 104 143 019 712 864 + 1;
  • 9 104 143 019 712 864 : 2 = 4 552 071 509 856 432 + 0;
  • 4 552 071 509 856 432 : 2 = 2 276 035 754 928 216 + 0;
  • 2 276 035 754 928 216 : 2 = 1 138 017 877 464 108 + 0;
  • 1 138 017 877 464 108 : 2 = 569 008 938 732 054 + 0;
  • 569 008 938 732 054 : 2 = 284 504 469 366 027 + 0;
  • 284 504 469 366 027 : 2 = 142 252 234 683 013 + 1;
  • 142 252 234 683 013 : 2 = 71 126 117 341 506 + 1;
  • 71 126 117 341 506 : 2 = 35 563 058 670 753 + 0;
  • 35 563 058 670 753 : 2 = 17 781 529 335 376 + 1;
  • 17 781 529 335 376 : 2 = 8 890 764 667 688 + 0;
  • 8 890 764 667 688 : 2 = 4 445 382 333 844 + 0;
  • 4 445 382 333 844 : 2 = 2 222 691 166 922 + 0;
  • 2 222 691 166 922 : 2 = 1 111 345 583 461 + 0;
  • 1 111 345 583 461 : 2 = 555 672 791 730 + 1;
  • 555 672 791 730 : 2 = 277 836 395 865 + 0;
  • 277 836 395 865 : 2 = 138 918 197 932 + 1;
  • 138 918 197 932 : 2 = 69 459 098 966 + 0;
  • 69 459 098 966 : 2 = 34 729 549 483 + 0;
  • 34 729 549 483 : 2 = 17 364 774 741 + 1;
  • 17 364 774 741 : 2 = 8 682 387 370 + 1;
  • 8 682 387 370 : 2 = 4 341 193 685 + 0;
  • 4 341 193 685 : 2 = 2 170 596 842 + 1;
  • 2 170 596 842 : 2 = 1 085 298 421 + 0;
  • 1 085 298 421 : 2 = 542 649 210 + 1;
  • 542 649 210 : 2 = 271 324 605 + 0;
  • 271 324 605 : 2 = 135 662 302 + 1;
  • 135 662 302 : 2 = 67 831 151 + 0;
  • 67 831 151 : 2 = 33 915 575 + 1;
  • 33 915 575 : 2 = 16 957 787 + 1;
  • 16 957 787 : 2 = 8 478 893 + 1;
  • 8 478 893 : 2 = 4 239 446 + 1;
  • 4 239 446 : 2 = 2 119 723 + 0;
  • 2 119 723 : 2 = 1 059 861 + 1;
  • 1 059 861 : 2 = 529 930 + 1;
  • 529 930 : 2 = 264 965 + 0;
  • 264 965 : 2 = 132 482 + 1;
  • 132 482 : 2 = 66 241 + 0;
  • 66 241 : 2 = 33 120 + 1;
  • 33 120 : 2 = 16 560 + 0;
  • 16 560 : 2 = 8 280 + 0;
  • 8 280 : 2 = 4 140 + 0;
  • 4 140 : 2 = 2 070 + 0;
  • 2 070 : 2 = 1 035 + 0;
  • 1 035 : 2 = 517 + 1;
  • 517 : 2 = 258 + 1;
  • 258 : 2 = 129 + 0;
  • 129 : 2 = 64 + 1;
  • 64 : 2 = 32 + 0;
  • 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 010 111 111 110 000 000 000 001 480(10) =


10 0000 0101 1000 0010 1011 0111 1010 1010 1100 1010 0001 0110 0000 1100 0101 0100 0011 0000 0111 0000 0101 1100 1000(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 010 111 111 110 000 000 000 001 480(10) =


10 0000 0101 1000 0010 1011 0111 1010 1010 1100 1010 0001 0110 0000 1100 0101 0100 0011 0000 0111 0000 0101 1100 1000(2) =


10 0000 0101 1000 0010 1011 0111 1010 1010 1100 1010 0001 0110 0000 1100 0101 0100 0011 0000 0111 0000 0101 1100 1000(2) × 20 =


1,0000 0010 1100 0001 0101 1011 1101 0101 0110 0101 0000 1011 0000 0110 0010 1010 0001 1000 0011 1000 0010 1110 0100 0(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 0010 1100 0001 0101 1011 1101 0101 0110 0101 0000 1011 0000 0110 0010 1010 0001 1000 0011 1000 0010 1110 0100 0


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 0001 0110 0000 1010 1101 11 1010 1010 1100 1010 0001 0110 0000 1100 0101 0100 0011 0000 0111 0000 0101 1100 1000 =


000 0001 0110 0000 1010 1101


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 0001 0110 0000 1010 1101


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

0 - 1101 1100 - 000 0001 0110 0000 1010 1101


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