100 001 100 000 110 110 000 000 000 378 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 100 001 100 000 110 110 000 000 000 378(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
100 001 100 000 110 110 000 000 000 378(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;
  • 100 001 100 000 110 110 000 000 000 378 : 2 = 50 000 550 000 055 055 000 000 000 189 + 0;
  • 50 000 550 000 055 055 000 000 000 189 : 2 = 25 000 275 000 027 527 500 000 000 094 + 1;
  • 25 000 275 000 027 527 500 000 000 094 : 2 = 12 500 137 500 013 763 750 000 000 047 + 0;
  • 12 500 137 500 013 763 750 000 000 047 : 2 = 6 250 068 750 006 881 875 000 000 023 + 1;
  • 6 250 068 750 006 881 875 000 000 023 : 2 = 3 125 034 375 003 440 937 500 000 011 + 1;
  • 3 125 034 375 003 440 937 500 000 011 : 2 = 1 562 517 187 501 720 468 750 000 005 + 1;
  • 1 562 517 187 501 720 468 750 000 005 : 2 = 781 258 593 750 860 234 375 000 002 + 1;
  • 781 258 593 750 860 234 375 000 002 : 2 = 390 629 296 875 430 117 187 500 001 + 0;
  • 390 629 296 875 430 117 187 500 001 : 2 = 195 314 648 437 715 058 593 750 000 + 1;
  • 195 314 648 437 715 058 593 750 000 : 2 = 97 657 324 218 857 529 296 875 000 + 0;
  • 97 657 324 218 857 529 296 875 000 : 2 = 48 828 662 109 428 764 648 437 500 + 0;
  • 48 828 662 109 428 764 648 437 500 : 2 = 24 414 331 054 714 382 324 218 750 + 0;
  • 24 414 331 054 714 382 324 218 750 : 2 = 12 207 165 527 357 191 162 109 375 + 0;
  • 12 207 165 527 357 191 162 109 375 : 2 = 6 103 582 763 678 595 581 054 687 + 1;
  • 6 103 582 763 678 595 581 054 687 : 2 = 3 051 791 381 839 297 790 527 343 + 1;
  • 3 051 791 381 839 297 790 527 343 : 2 = 1 525 895 690 919 648 895 263 671 + 1;
  • 1 525 895 690 919 648 895 263 671 : 2 = 762 947 845 459 824 447 631 835 + 1;
  • 762 947 845 459 824 447 631 835 : 2 = 381 473 922 729 912 223 815 917 + 1;
  • 381 473 922 729 912 223 815 917 : 2 = 190 736 961 364 956 111 907 958 + 1;
  • 190 736 961 364 956 111 907 958 : 2 = 95 368 480 682 478 055 953 979 + 0;
  • 95 368 480 682 478 055 953 979 : 2 = 47 684 240 341 239 027 976 989 + 1;
  • 47 684 240 341 239 027 976 989 : 2 = 23 842 120 170 619 513 988 494 + 1;
  • 23 842 120 170 619 513 988 494 : 2 = 11 921 060 085 309 756 994 247 + 0;
  • 11 921 060 085 309 756 994 247 : 2 = 5 960 530 042 654 878 497 123 + 1;
  • 5 960 530 042 654 878 497 123 : 2 = 2 980 265 021 327 439 248 561 + 1;
  • 2 980 265 021 327 439 248 561 : 2 = 1 490 132 510 663 719 624 280 + 1;
  • 1 490 132 510 663 719 624 280 : 2 = 745 066 255 331 859 812 140 + 0;
  • 745 066 255 331 859 812 140 : 2 = 372 533 127 665 929 906 070 + 0;
  • 372 533 127 665 929 906 070 : 2 = 186 266 563 832 964 953 035 + 0;
  • 186 266 563 832 964 953 035 : 2 = 93 133 281 916 482 476 517 + 1;
  • 93 133 281 916 482 476 517 : 2 = 46 566 640 958 241 238 258 + 1;
  • 46 566 640 958 241 238 258 : 2 = 23 283 320 479 120 619 129 + 0;
  • 23 283 320 479 120 619 129 : 2 = 11 641 660 239 560 309 564 + 1;
  • 11 641 660 239 560 309 564 : 2 = 5 820 830 119 780 154 782 + 0;
  • 5 820 830 119 780 154 782 : 2 = 2 910 415 059 890 077 391 + 0;
  • 2 910 415 059 890 077 391 : 2 = 1 455 207 529 945 038 695 + 1;
  • 1 455 207 529 945 038 695 : 2 = 727 603 764 972 519 347 + 1;
  • 727 603 764 972 519 347 : 2 = 363 801 882 486 259 673 + 1;
  • 363 801 882 486 259 673 : 2 = 181 900 941 243 129 836 + 1;
  • 181 900 941 243 129 836 : 2 = 90 950 470 621 564 918 + 0;
  • 90 950 470 621 564 918 : 2 = 45 475 235 310 782 459 + 0;
  • 45 475 235 310 782 459 : 2 = 22 737 617 655 391 229 + 1;
  • 22 737 617 655 391 229 : 2 = 11 368 808 827 695 614 + 1;
  • 11 368 808 827 695 614 : 2 = 5 684 404 413 847 807 + 0;
  • 5 684 404 413 847 807 : 2 = 2 842 202 206 923 903 + 1;
  • 2 842 202 206 923 903 : 2 = 1 421 101 103 461 951 + 1;
  • 1 421 101 103 461 951 : 2 = 710 550 551 730 975 + 1;
  • 710 550 551 730 975 : 2 = 355 275 275 865 487 + 1;
  • 355 275 275 865 487 : 2 = 177 637 637 932 743 + 1;
  • 177 637 637 932 743 : 2 = 88 818 818 966 371 + 1;
  • 88 818 818 966 371 : 2 = 44 409 409 483 185 + 1;
  • 44 409 409 483 185 : 2 = 22 204 704 741 592 + 1;
  • 22 204 704 741 592 : 2 = 11 102 352 370 796 + 0;
  • 11 102 352 370 796 : 2 = 5 551 176 185 398 + 0;
  • 5 551 176 185 398 : 2 = 2 775 588 092 699 + 0;
  • 2 775 588 092 699 : 2 = 1 387 794 046 349 + 1;
  • 1 387 794 046 349 : 2 = 693 897 023 174 + 1;
  • 693 897 023 174 : 2 = 346 948 511 587 + 0;
  • 346 948 511 587 : 2 = 173 474 255 793 + 1;
  • 173 474 255 793 : 2 = 86 737 127 896 + 1;
  • 86 737 127 896 : 2 = 43 368 563 948 + 0;
  • 43 368 563 948 : 2 = 21 684 281 974 + 0;
  • 21 684 281 974 : 2 = 10 842 140 987 + 0;
  • 10 842 140 987 : 2 = 5 421 070 493 + 1;
  • 5 421 070 493 : 2 = 2 710 535 246 + 1;
  • 2 710 535 246 : 2 = 1 355 267 623 + 0;
  • 1 355 267 623 : 2 = 677 633 811 + 1;
  • 677 633 811 : 2 = 338 816 905 + 1;
  • 338 816 905 : 2 = 169 408 452 + 1;
  • 169 408 452 : 2 = 84 704 226 + 0;
  • 84 704 226 : 2 = 42 352 113 + 0;
  • 42 352 113 : 2 = 21 176 056 + 1;
  • 21 176 056 : 2 = 10 588 028 + 0;
  • 10 588 028 : 2 = 5 294 014 + 0;
  • 5 294 014 : 2 = 2 647 007 + 0;
  • 2 647 007 : 2 = 1 323 503 + 1;
  • 1 323 503 : 2 = 661 751 + 1;
  • 661 751 : 2 = 330 875 + 1;
  • 330 875 : 2 = 165 437 + 1;
  • 165 437 : 2 = 82 718 + 1;
  • 82 718 : 2 = 41 359 + 0;
  • 41 359 : 2 = 20 679 + 1;
  • 20 679 : 2 = 10 339 + 1;
  • 10 339 : 2 = 5 169 + 1;
  • 5 169 : 2 = 2 584 + 1;
  • 2 584 : 2 = 1 292 + 0;
  • 1 292 : 2 = 646 + 0;
  • 646 : 2 = 323 + 0;
  • 323 : 2 = 161 + 1;
  • 161 : 2 = 80 + 1;
  • 80 : 2 = 40 + 0;
  • 40 : 2 = 20 + 0;
  • 20 : 2 = 10 + 0;
  • 10 : 2 = 5 + 0;
  • 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.

100 001 100 000 110 110 000 000 000 378(10) =


1 0100 0011 0001 1110 1111 1000 1001 1101 1000 1101 1000 1111 1111 0110 0111 1001 0110 0011 1011 0111 1110 0001 0111 1010(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:


100 001 100 000 110 110 000 000 000 378(10) =


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


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


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


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. 010 0001 1000 1111 0111 1100 0 1001 1101 1000 1101 1000 1111 1111 0110 0111 1001 0110 0011 1011 0111 1110 0001 0111 1010 =


010 0001 1000 1111 0111 1100


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) =
010 0001 1000 1111 0111 1100


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

0 - 1101 1111 - 010 0001 1000 1111 0111 1100


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