111 010 100 111 001 101 099 999 999 213 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 111 010 100 111 001 101 099 999 999 213(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
111 010 100 111 001 101 099 999 999 213(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;
  • 111 010 100 111 001 101 099 999 999 213 : 2 = 55 505 050 055 500 550 549 999 999 606 + 1;
  • 55 505 050 055 500 550 549 999 999 606 : 2 = 27 752 525 027 750 275 274 999 999 803 + 0;
  • 27 752 525 027 750 275 274 999 999 803 : 2 = 13 876 262 513 875 137 637 499 999 901 + 1;
  • 13 876 262 513 875 137 637 499 999 901 : 2 = 6 938 131 256 937 568 818 749 999 950 + 1;
  • 6 938 131 256 937 568 818 749 999 950 : 2 = 3 469 065 628 468 784 409 374 999 975 + 0;
  • 3 469 065 628 468 784 409 374 999 975 : 2 = 1 734 532 814 234 392 204 687 499 987 + 1;
  • 1 734 532 814 234 392 204 687 499 987 : 2 = 867 266 407 117 196 102 343 749 993 + 1;
  • 867 266 407 117 196 102 343 749 993 : 2 = 433 633 203 558 598 051 171 874 996 + 1;
  • 433 633 203 558 598 051 171 874 996 : 2 = 216 816 601 779 299 025 585 937 498 + 0;
  • 216 816 601 779 299 025 585 937 498 : 2 = 108 408 300 889 649 512 792 968 749 + 0;
  • 108 408 300 889 649 512 792 968 749 : 2 = 54 204 150 444 824 756 396 484 374 + 1;
  • 54 204 150 444 824 756 396 484 374 : 2 = 27 102 075 222 412 378 198 242 187 + 0;
  • 27 102 075 222 412 378 198 242 187 : 2 = 13 551 037 611 206 189 099 121 093 + 1;
  • 13 551 037 611 206 189 099 121 093 : 2 = 6 775 518 805 603 094 549 560 546 + 1;
  • 6 775 518 805 603 094 549 560 546 : 2 = 3 387 759 402 801 547 274 780 273 + 0;
  • 3 387 759 402 801 547 274 780 273 : 2 = 1 693 879 701 400 773 637 390 136 + 1;
  • 1 693 879 701 400 773 637 390 136 : 2 = 846 939 850 700 386 818 695 068 + 0;
  • 846 939 850 700 386 818 695 068 : 2 = 423 469 925 350 193 409 347 534 + 0;
  • 423 469 925 350 193 409 347 534 : 2 = 211 734 962 675 096 704 673 767 + 0;
  • 211 734 962 675 096 704 673 767 : 2 = 105 867 481 337 548 352 336 883 + 1;
  • 105 867 481 337 548 352 336 883 : 2 = 52 933 740 668 774 176 168 441 + 1;
  • 52 933 740 668 774 176 168 441 : 2 = 26 466 870 334 387 088 084 220 + 1;
  • 26 466 870 334 387 088 084 220 : 2 = 13 233 435 167 193 544 042 110 + 0;
  • 13 233 435 167 193 544 042 110 : 2 = 6 616 717 583 596 772 021 055 + 0;
  • 6 616 717 583 596 772 021 055 : 2 = 3 308 358 791 798 386 010 527 + 1;
  • 3 308 358 791 798 386 010 527 : 2 = 1 654 179 395 899 193 005 263 + 1;
  • 1 654 179 395 899 193 005 263 : 2 = 827 089 697 949 596 502 631 + 1;
  • 827 089 697 949 596 502 631 : 2 = 413 544 848 974 798 251 315 + 1;
  • 413 544 848 974 798 251 315 : 2 = 206 772 424 487 399 125 657 + 1;
  • 206 772 424 487 399 125 657 : 2 = 103 386 212 243 699 562 828 + 1;
  • 103 386 212 243 699 562 828 : 2 = 51 693 106 121 849 781 414 + 0;
  • 51 693 106 121 849 781 414 : 2 = 25 846 553 060 924 890 707 + 0;
  • 25 846 553 060 924 890 707 : 2 = 12 923 276 530 462 445 353 + 1;
  • 12 923 276 530 462 445 353 : 2 = 6 461 638 265 231 222 676 + 1;
  • 6 461 638 265 231 222 676 : 2 = 3 230 819 132 615 611 338 + 0;
  • 3 230 819 132 615 611 338 : 2 = 1 615 409 566 307 805 669 + 0;
  • 1 615 409 566 307 805 669 : 2 = 807 704 783 153 902 834 + 1;
  • 807 704 783 153 902 834 : 2 = 403 852 391 576 951 417 + 0;
  • 403 852 391 576 951 417 : 2 = 201 926 195 788 475 708 + 1;
  • 201 926 195 788 475 708 : 2 = 100 963 097 894 237 854 + 0;
  • 100 963 097 894 237 854 : 2 = 50 481 548 947 118 927 + 0;
  • 50 481 548 947 118 927 : 2 = 25 240 774 473 559 463 + 1;
  • 25 240 774 473 559 463 : 2 = 12 620 387 236 779 731 + 1;
  • 12 620 387 236 779 731 : 2 = 6 310 193 618 389 865 + 1;
  • 6 310 193 618 389 865 : 2 = 3 155 096 809 194 932 + 1;
  • 3 155 096 809 194 932 : 2 = 1 577 548 404 597 466 + 0;
  • 1 577 548 404 597 466 : 2 = 788 774 202 298 733 + 0;
  • 788 774 202 298 733 : 2 = 394 387 101 149 366 + 1;
  • 394 387 101 149 366 : 2 = 197 193 550 574 683 + 0;
  • 197 193 550 574 683 : 2 = 98 596 775 287 341 + 1;
  • 98 596 775 287 341 : 2 = 49 298 387 643 670 + 1;
  • 49 298 387 643 670 : 2 = 24 649 193 821 835 + 0;
  • 24 649 193 821 835 : 2 = 12 324 596 910 917 + 1;
  • 12 324 596 910 917 : 2 = 6 162 298 455 458 + 1;
  • 6 162 298 455 458 : 2 = 3 081 149 227 729 + 0;
  • 3 081 149 227 729 : 2 = 1 540 574 613 864 + 1;
  • 1 540 574 613 864 : 2 = 770 287 306 932 + 0;
  • 770 287 306 932 : 2 = 385 143 653 466 + 0;
  • 385 143 653 466 : 2 = 192 571 826 733 + 0;
  • 192 571 826 733 : 2 = 96 285 913 366 + 1;
  • 96 285 913 366 : 2 = 48 142 956 683 + 0;
  • 48 142 956 683 : 2 = 24 071 478 341 + 1;
  • 24 071 478 341 : 2 = 12 035 739 170 + 1;
  • 12 035 739 170 : 2 = 6 017 869 585 + 0;
  • 6 017 869 585 : 2 = 3 008 934 792 + 1;
  • 3 008 934 792 : 2 = 1 504 467 396 + 0;
  • 1 504 467 396 : 2 = 752 233 698 + 0;
  • 752 233 698 : 2 = 376 116 849 + 0;
  • 376 116 849 : 2 = 188 058 424 + 1;
  • 188 058 424 : 2 = 94 029 212 + 0;
  • 94 029 212 : 2 = 47 014 606 + 0;
  • 47 014 606 : 2 = 23 507 303 + 0;
  • 23 507 303 : 2 = 11 753 651 + 1;
  • 11 753 651 : 2 = 5 876 825 + 1;
  • 5 876 825 : 2 = 2 938 412 + 1;
  • 2 938 412 : 2 = 1 469 206 + 0;
  • 1 469 206 : 2 = 734 603 + 0;
  • 734 603 : 2 = 367 301 + 1;
  • 367 301 : 2 = 183 650 + 1;
  • 183 650 : 2 = 91 825 + 0;
  • 91 825 : 2 = 45 912 + 1;
  • 45 912 : 2 = 22 956 + 0;
  • 22 956 : 2 = 11 478 + 0;
  • 11 478 : 2 = 5 739 + 0;
  • 5 739 : 2 = 2 869 + 1;
  • 2 869 : 2 = 1 434 + 1;
  • 1 434 : 2 = 717 + 0;
  • 717 : 2 = 358 + 1;
  • 358 : 2 = 179 + 0;
  • 179 : 2 = 89 + 1;
  • 89 : 2 = 44 + 1;
  • 44 : 2 = 22 + 0;
  • 22 : 2 = 11 + 0;
  • 11 : 2 = 5 + 1;
  • 5 : 2 = 2 + 1;
  • 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.

111 010 100 111 001 101 099 999 999 213(10) =


1 0110 0110 1011 0001 0110 0111 0001 0001 0110 1000 1011 0110 1001 1110 0101 0011 0011 1111 0011 1000 1011 0100 1110 1101(2)


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

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


111 010 100 111 001 101 099 999 999 213(10) =


1 0110 0110 1011 0001 0110 0111 0001 0001 0110 1000 1011 0110 1001 1110 0101 0011 0011 1111 0011 1000 1011 0100 1110 1101(2) =


1 0110 0110 1011 0001 0110 0111 0001 0001 0110 1000 1011 0110 1001 1110 0101 0011 0011 1111 0011 1000 1011 0100 1110 1101(2) × 20 =


1,0110 0110 1011 0001 0110 0111 0001 0001 0110 1000 1011 0110 1001 1110 0101 0011 0011 1111 0011 1000 1011 0100 1110 1101(2) × 296


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


Mantisă (nenormalizată):
1,0110 0110 1011 0001 0110 0111 0001 0001 0110 1000 1011 0110 1001 1110 0101 0011 0011 1111 0011 1000 1011 0100 1110 1101


5. Ajustează exponentul.

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


Exponent (ajustat) =


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


96 + 2(8-1) - 1 =


(96 + 127)(10) =


223(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;
  • 223 : 2 = 111 + 1;
  • 111 : 2 = 55 + 1;
  • 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) =


223(10) =


1101 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. 011 0011 0101 1000 1011 0011 1 0001 0001 0110 1000 1011 0110 1001 1110 0101 0011 0011 1111 0011 1000 1011 0100 1110 1101 =


011 0011 0101 1000 1011 0011


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 1111


Mantisă (23 biți) =
011 0011 0101 1000 1011 0011


Numărul zecimal 111 010 100 111 001 101 099 999 999 213 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1101 1111 - 011 0011 0101 1000 1011 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