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

Scriere 11 000 000 111 110 000 000 000 000 017(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
11 000 000 111 110 000 000 000 000 017(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;
  • 11 000 000 111 110 000 000 000 000 017 : 2 = 5 500 000 055 555 000 000 000 000 008 + 1;
  • 5 500 000 055 555 000 000 000 000 008 : 2 = 2 750 000 027 777 500 000 000 000 004 + 0;
  • 2 750 000 027 777 500 000 000 000 004 : 2 = 1 375 000 013 888 750 000 000 000 002 + 0;
  • 1 375 000 013 888 750 000 000 000 002 : 2 = 687 500 006 944 375 000 000 000 001 + 0;
  • 687 500 006 944 375 000 000 000 001 : 2 = 343 750 003 472 187 500 000 000 000 + 1;
  • 343 750 003 472 187 500 000 000 000 : 2 = 171 875 001 736 093 750 000 000 000 + 0;
  • 171 875 001 736 093 750 000 000 000 : 2 = 85 937 500 868 046 875 000 000 000 + 0;
  • 85 937 500 868 046 875 000 000 000 : 2 = 42 968 750 434 023 437 500 000 000 + 0;
  • 42 968 750 434 023 437 500 000 000 : 2 = 21 484 375 217 011 718 750 000 000 + 0;
  • 21 484 375 217 011 718 750 000 000 : 2 = 10 742 187 608 505 859 375 000 000 + 0;
  • 10 742 187 608 505 859 375 000 000 : 2 = 5 371 093 804 252 929 687 500 000 + 0;
  • 5 371 093 804 252 929 687 500 000 : 2 = 2 685 546 902 126 464 843 750 000 + 0;
  • 2 685 546 902 126 464 843 750 000 : 2 = 1 342 773 451 063 232 421 875 000 + 0;
  • 1 342 773 451 063 232 421 875 000 : 2 = 671 386 725 531 616 210 937 500 + 0;
  • 671 386 725 531 616 210 937 500 : 2 = 335 693 362 765 808 105 468 750 + 0;
  • 335 693 362 765 808 105 468 750 : 2 = 167 846 681 382 904 052 734 375 + 0;
  • 167 846 681 382 904 052 734 375 : 2 = 83 923 340 691 452 026 367 187 + 1;
  • 83 923 340 691 452 026 367 187 : 2 = 41 961 670 345 726 013 183 593 + 1;
  • 41 961 670 345 726 013 183 593 : 2 = 20 980 835 172 863 006 591 796 + 1;
  • 20 980 835 172 863 006 591 796 : 2 = 10 490 417 586 431 503 295 898 + 0;
  • 10 490 417 586 431 503 295 898 : 2 = 5 245 208 793 215 751 647 949 + 0;
  • 5 245 208 793 215 751 647 949 : 2 = 2 622 604 396 607 875 823 974 + 1;
  • 2 622 604 396 607 875 823 974 : 2 = 1 311 302 198 303 937 911 987 + 0;
  • 1 311 302 198 303 937 911 987 : 2 = 655 651 099 151 968 955 993 + 1;
  • 655 651 099 151 968 955 993 : 2 = 327 825 549 575 984 477 996 + 1;
  • 327 825 549 575 984 477 996 : 2 = 163 912 774 787 992 238 998 + 0;
  • 163 912 774 787 992 238 998 : 2 = 81 956 387 393 996 119 499 + 0;
  • 81 956 387 393 996 119 499 : 2 = 40 978 193 696 998 059 749 + 1;
  • 40 978 193 696 998 059 749 : 2 = 20 489 096 848 499 029 874 + 1;
  • 20 489 096 848 499 029 874 : 2 = 10 244 548 424 249 514 937 + 0;
  • 10 244 548 424 249 514 937 : 2 = 5 122 274 212 124 757 468 + 1;
  • 5 122 274 212 124 757 468 : 2 = 2 561 137 106 062 378 734 + 0;
  • 2 561 137 106 062 378 734 : 2 = 1 280 568 553 031 189 367 + 0;
  • 1 280 568 553 031 189 367 : 2 = 640 284 276 515 594 683 + 1;
  • 640 284 276 515 594 683 : 2 = 320 142 138 257 797 341 + 1;
  • 320 142 138 257 797 341 : 2 = 160 071 069 128 898 670 + 1;
  • 160 071 069 128 898 670 : 2 = 80 035 534 564 449 335 + 0;
  • 80 035 534 564 449 335 : 2 = 40 017 767 282 224 667 + 1;
  • 40 017 767 282 224 667 : 2 = 20 008 883 641 112 333 + 1;
  • 20 008 883 641 112 333 : 2 = 10 004 441 820 556 166 + 1;
  • 10 004 441 820 556 166 : 2 = 5 002 220 910 278 083 + 0;
  • 5 002 220 910 278 083 : 2 = 2 501 110 455 139 041 + 1;
  • 2 501 110 455 139 041 : 2 = 1 250 555 227 569 520 + 1;
  • 1 250 555 227 569 520 : 2 = 625 277 613 784 760 + 0;
  • 625 277 613 784 760 : 2 = 312 638 806 892 380 + 0;
  • 312 638 806 892 380 : 2 = 156 319 403 446 190 + 0;
  • 156 319 403 446 190 : 2 = 78 159 701 723 095 + 0;
  • 78 159 701 723 095 : 2 = 39 079 850 861 547 + 1;
  • 39 079 850 861 547 : 2 = 19 539 925 430 773 + 1;
  • 19 539 925 430 773 : 2 = 9 769 962 715 386 + 1;
  • 9 769 962 715 386 : 2 = 4 884 981 357 693 + 0;
  • 4 884 981 357 693 : 2 = 2 442 490 678 846 + 1;
  • 2 442 490 678 846 : 2 = 1 221 245 339 423 + 0;
  • 1 221 245 339 423 : 2 = 610 622 669 711 + 1;
  • 610 622 669 711 : 2 = 305 311 334 855 + 1;
  • 305 311 334 855 : 2 = 152 655 667 427 + 1;
  • 152 655 667 427 : 2 = 76 327 833 713 + 1;
  • 76 327 833 713 : 2 = 38 163 916 856 + 1;
  • 38 163 916 856 : 2 = 19 081 958 428 + 0;
  • 19 081 958 428 : 2 = 9 540 979 214 + 0;
  • 9 540 979 214 : 2 = 4 770 489 607 + 0;
  • 4 770 489 607 : 2 = 2 385 244 803 + 1;
  • 2 385 244 803 : 2 = 1 192 622 401 + 1;
  • 1 192 622 401 : 2 = 596 311 200 + 1;
  • 596 311 200 : 2 = 298 155 600 + 0;
  • 298 155 600 : 2 = 149 077 800 + 0;
  • 149 077 800 : 2 = 74 538 900 + 0;
  • 74 538 900 : 2 = 37 269 450 + 0;
  • 37 269 450 : 2 = 18 634 725 + 0;
  • 18 634 725 : 2 = 9 317 362 + 1;
  • 9 317 362 : 2 = 4 658 681 + 0;
  • 4 658 681 : 2 = 2 329 340 + 1;
  • 2 329 340 : 2 = 1 164 670 + 0;
  • 1 164 670 : 2 = 582 335 + 0;
  • 582 335 : 2 = 291 167 + 1;
  • 291 167 : 2 = 145 583 + 1;
  • 145 583 : 2 = 72 791 + 1;
  • 72 791 : 2 = 36 395 + 1;
  • 36 395 : 2 = 18 197 + 1;
  • 18 197 : 2 = 9 098 + 1;
  • 9 098 : 2 = 4 549 + 0;
  • 4 549 : 2 = 2 274 + 1;
  • 2 274 : 2 = 1 137 + 0;
  • 1 137 : 2 = 568 + 1;
  • 568 : 2 = 284 + 0;
  • 284 : 2 = 142 + 0;
  • 142 : 2 = 71 + 0;
  • 71 : 2 = 35 + 1;
  • 35 : 2 = 17 + 1;
  • 17 : 2 = 8 + 1;
  • 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.

11 000 000 111 110 000 000 000 000 017(10) =


10 0011 1000 1010 1111 1100 1010 0000 1110 0011 1110 1011 1000 0110 1110 1110 0101 1001 1010 0111 0000 0000 0001 0001(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:


11 000 000 111 110 000 000 000 000 017(10) =


10 0011 1000 1010 1111 1100 1010 0000 1110 0011 1110 1011 1000 0110 1110 1110 0101 1001 1010 0111 0000 0000 0001 0001(2) =


10 0011 1000 1010 1111 1100 1010 0000 1110 0011 1110 1011 1000 0110 1110 1110 0101 1001 1010 0111 0000 0000 0001 0001(2) × 20 =


1,0001 1100 0101 0111 1110 0101 0000 0111 0001 1111 0101 1100 0011 0111 0111 0010 1100 1101 0011 1000 0000 0000 1000 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,0001 1100 0101 0111 1110 0101 0000 0111 0001 1111 0101 1100 0011 0111 0111 0010 1100 1101 0011 1000 0000 0000 1000 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 1110 0010 1011 1111 0010 10 0000 1110 0011 1110 1011 1000 0110 1110 1110 0101 1001 1010 0111 0000 0000 0001 0001 =


000 1110 0010 1011 1111 0010


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 1110 0010 1011 1111 0010


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

0 - 1101 1100 - 000 1110 0010 1011 1111 0010


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