111 101 110 009 999 999 999 999 999 351 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 111 101 110 009 999 999 999 999 999 351(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 101 110 009 999 999 999 999 999 351(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 101 110 009 999 999 999 999 999 351 : 2 = 55 550 555 004 999 999 999 999 999 675 + 1;
  • 55 550 555 004 999 999 999 999 999 675 : 2 = 27 775 277 502 499 999 999 999 999 837 + 1;
  • 27 775 277 502 499 999 999 999 999 837 : 2 = 13 887 638 751 249 999 999 999 999 918 + 1;
  • 13 887 638 751 249 999 999 999 999 918 : 2 = 6 943 819 375 624 999 999 999 999 959 + 0;
  • 6 943 819 375 624 999 999 999 999 959 : 2 = 3 471 909 687 812 499 999 999 999 979 + 1;
  • 3 471 909 687 812 499 999 999 999 979 : 2 = 1 735 954 843 906 249 999 999 999 989 + 1;
  • 1 735 954 843 906 249 999 999 999 989 : 2 = 867 977 421 953 124 999 999 999 994 + 1;
  • 867 977 421 953 124 999 999 999 994 : 2 = 433 988 710 976 562 499 999 999 997 + 0;
  • 433 988 710 976 562 499 999 999 997 : 2 = 216 994 355 488 281 249 999 999 998 + 1;
  • 216 994 355 488 281 249 999 999 998 : 2 = 108 497 177 744 140 624 999 999 999 + 0;
  • 108 497 177 744 140 624 999 999 999 : 2 = 54 248 588 872 070 312 499 999 999 + 1;
  • 54 248 588 872 070 312 499 999 999 : 2 = 27 124 294 436 035 156 249 999 999 + 1;
  • 27 124 294 436 035 156 249 999 999 : 2 = 13 562 147 218 017 578 124 999 999 + 1;
  • 13 562 147 218 017 578 124 999 999 : 2 = 6 781 073 609 008 789 062 499 999 + 1;
  • 6 781 073 609 008 789 062 499 999 : 2 = 3 390 536 804 504 394 531 249 999 + 1;
  • 3 390 536 804 504 394 531 249 999 : 2 = 1 695 268 402 252 197 265 624 999 + 1;
  • 1 695 268 402 252 197 265 624 999 : 2 = 847 634 201 126 098 632 812 499 + 1;
  • 847 634 201 126 098 632 812 499 : 2 = 423 817 100 563 049 316 406 249 + 1;
  • 423 817 100 563 049 316 406 249 : 2 = 211 908 550 281 524 658 203 124 + 1;
  • 211 908 550 281 524 658 203 124 : 2 = 105 954 275 140 762 329 101 562 + 0;
  • 105 954 275 140 762 329 101 562 : 2 = 52 977 137 570 381 164 550 781 + 0;
  • 52 977 137 570 381 164 550 781 : 2 = 26 488 568 785 190 582 275 390 + 1;
  • 26 488 568 785 190 582 275 390 : 2 = 13 244 284 392 595 291 137 695 + 0;
  • 13 244 284 392 595 291 137 695 : 2 = 6 622 142 196 297 645 568 847 + 1;
  • 6 622 142 196 297 645 568 847 : 2 = 3 311 071 098 148 822 784 423 + 1;
  • 3 311 071 098 148 822 784 423 : 2 = 1 655 535 549 074 411 392 211 + 1;
  • 1 655 535 549 074 411 392 211 : 2 = 827 767 774 537 205 696 105 + 1;
  • 827 767 774 537 205 696 105 : 2 = 413 883 887 268 602 848 052 + 1;
  • 413 883 887 268 602 848 052 : 2 = 206 941 943 634 301 424 026 + 0;
  • 206 941 943 634 301 424 026 : 2 = 103 470 971 817 150 712 013 + 0;
  • 103 470 971 817 150 712 013 : 2 = 51 735 485 908 575 356 006 + 1;
  • 51 735 485 908 575 356 006 : 2 = 25 867 742 954 287 678 003 + 0;
  • 25 867 742 954 287 678 003 : 2 = 12 933 871 477 143 839 001 + 1;
  • 12 933 871 477 143 839 001 : 2 = 6 466 935 738 571 919 500 + 1;
  • 6 466 935 738 571 919 500 : 2 = 3 233 467 869 285 959 750 + 0;
  • 3 233 467 869 285 959 750 : 2 = 1 616 733 934 642 979 875 + 0;
  • 1 616 733 934 642 979 875 : 2 = 808 366 967 321 489 937 + 1;
  • 808 366 967 321 489 937 : 2 = 404 183 483 660 744 968 + 1;
  • 404 183 483 660 744 968 : 2 = 202 091 741 830 372 484 + 0;
  • 202 091 741 830 372 484 : 2 = 101 045 870 915 186 242 + 0;
  • 101 045 870 915 186 242 : 2 = 50 522 935 457 593 121 + 0;
  • 50 522 935 457 593 121 : 2 = 25 261 467 728 796 560 + 1;
  • 25 261 467 728 796 560 : 2 = 12 630 733 864 398 280 + 0;
  • 12 630 733 864 398 280 : 2 = 6 315 366 932 199 140 + 0;
  • 6 315 366 932 199 140 : 2 = 3 157 683 466 099 570 + 0;
  • 3 157 683 466 099 570 : 2 = 1 578 841 733 049 785 + 0;
  • 1 578 841 733 049 785 : 2 = 789 420 866 524 892 + 1;
  • 789 420 866 524 892 : 2 = 394 710 433 262 446 + 0;
  • 394 710 433 262 446 : 2 = 197 355 216 631 223 + 0;
  • 197 355 216 631 223 : 2 = 98 677 608 315 611 + 1;
  • 98 677 608 315 611 : 2 = 49 338 804 157 805 + 1;
  • 49 338 804 157 805 : 2 = 24 669 402 078 902 + 1;
  • 24 669 402 078 902 : 2 = 12 334 701 039 451 + 0;
  • 12 334 701 039 451 : 2 = 6 167 350 519 725 + 1;
  • 6 167 350 519 725 : 2 = 3 083 675 259 862 + 1;
  • 3 083 675 259 862 : 2 = 1 541 837 629 931 + 0;
  • 1 541 837 629 931 : 2 = 770 918 814 965 + 1;
  • 770 918 814 965 : 2 = 385 459 407 482 + 1;
  • 385 459 407 482 : 2 = 192 729 703 741 + 0;
  • 192 729 703 741 : 2 = 96 364 851 870 + 1;
  • 96 364 851 870 : 2 = 48 182 425 935 + 0;
  • 48 182 425 935 : 2 = 24 091 212 967 + 1;
  • 24 091 212 967 : 2 = 12 045 606 483 + 1;
  • 12 045 606 483 : 2 = 6 022 803 241 + 1;
  • 6 022 803 241 : 2 = 3 011 401 620 + 1;
  • 3 011 401 620 : 2 = 1 505 700 810 + 0;
  • 1 505 700 810 : 2 = 752 850 405 + 0;
  • 752 850 405 : 2 = 376 425 202 + 1;
  • 376 425 202 : 2 = 188 212 601 + 0;
  • 188 212 601 : 2 = 94 106 300 + 1;
  • 94 106 300 : 2 = 47 053 150 + 0;
  • 47 053 150 : 2 = 23 526 575 + 0;
  • 23 526 575 : 2 = 11 763 287 + 1;
  • 11 763 287 : 2 = 5 881 643 + 1;
  • 5 881 643 : 2 = 2 940 821 + 1;
  • 2 940 821 : 2 = 1 470 410 + 1;
  • 1 470 410 : 2 = 735 205 + 0;
  • 735 205 : 2 = 367 602 + 1;
  • 367 602 : 2 = 183 801 + 0;
  • 183 801 : 2 = 91 900 + 1;
  • 91 900 : 2 = 45 950 + 0;
  • 45 950 : 2 = 22 975 + 0;
  • 22 975 : 2 = 11 487 + 1;
  • 11 487 : 2 = 5 743 + 1;
  • 5 743 : 2 = 2 871 + 1;
  • 2 871 : 2 = 1 435 + 1;
  • 1 435 : 2 = 717 + 1;
  • 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 101 110 009 999 999 999 999 999 351(10) =


1 0110 0110 1111 1100 1010 1111 0010 1001 1110 1011 0110 1110 0100 0010 0011 0011 0100 1111 1010 0111 1111 1101 0111 0111(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 101 110 009 999 999 999 999 999 351(10) =


1 0110 0110 1111 1100 1010 1111 0010 1001 1110 1011 0110 1110 0100 0010 0011 0011 0100 1111 1010 0111 1111 1101 0111 0111(2) =


1 0110 0110 1111 1100 1010 1111 0010 1001 1110 1011 0110 1110 0100 0010 0011 0011 0100 1111 1010 0111 1111 1101 0111 0111(2) × 20 =


1,0110 0110 1111 1100 1010 1111 0010 1001 1110 1011 0110 1110 0100 0010 0011 0011 0100 1111 1010 0111 1111 1101 0111 0111(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 1111 1100 1010 1111 0010 1001 1110 1011 0110 1110 0100 0010 0011 0011 0100 1111 1010 0111 1111 1101 0111 0111


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 0111 1110 0101 0111 1 0010 1001 1110 1011 0110 1110 0100 0010 0011 0011 0100 1111 1010 0111 1111 1101 0111 0111 =


011 0011 0111 1110 0101 0111


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 0111 1110 0101 0111


Numărul zecimal 111 101 110 009 999 999 999 999 999 351 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1101 1111 - 011 0011 0111 1110 0101 0111


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