101 010 111 011 011 000 000 000 000 025 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 101 010 111 011 011 000 000 000 000 025(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
101 010 111 011 011 000 000 000 000 025(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;
  • 101 010 111 011 011 000 000 000 000 025 : 2 = 50 505 055 505 505 500 000 000 000 012 + 1;
  • 50 505 055 505 505 500 000 000 000 012 : 2 = 25 252 527 752 752 750 000 000 000 006 + 0;
  • 25 252 527 752 752 750 000 000 000 006 : 2 = 12 626 263 876 376 375 000 000 000 003 + 0;
  • 12 626 263 876 376 375 000 000 000 003 : 2 = 6 313 131 938 188 187 500 000 000 001 + 1;
  • 6 313 131 938 188 187 500 000 000 001 : 2 = 3 156 565 969 094 093 750 000 000 000 + 1;
  • 3 156 565 969 094 093 750 000 000 000 : 2 = 1 578 282 984 547 046 875 000 000 000 + 0;
  • 1 578 282 984 547 046 875 000 000 000 : 2 = 789 141 492 273 523 437 500 000 000 + 0;
  • 789 141 492 273 523 437 500 000 000 : 2 = 394 570 746 136 761 718 750 000 000 + 0;
  • 394 570 746 136 761 718 750 000 000 : 2 = 197 285 373 068 380 859 375 000 000 + 0;
  • 197 285 373 068 380 859 375 000 000 : 2 = 98 642 686 534 190 429 687 500 000 + 0;
  • 98 642 686 534 190 429 687 500 000 : 2 = 49 321 343 267 095 214 843 750 000 + 0;
  • 49 321 343 267 095 214 843 750 000 : 2 = 24 660 671 633 547 607 421 875 000 + 0;
  • 24 660 671 633 547 607 421 875 000 : 2 = 12 330 335 816 773 803 710 937 500 + 0;
  • 12 330 335 816 773 803 710 937 500 : 2 = 6 165 167 908 386 901 855 468 750 + 0;
  • 6 165 167 908 386 901 855 468 750 : 2 = 3 082 583 954 193 450 927 734 375 + 0;
  • 3 082 583 954 193 450 927 734 375 : 2 = 1 541 291 977 096 725 463 867 187 + 1;
  • 1 541 291 977 096 725 463 867 187 : 2 = 770 645 988 548 362 731 933 593 + 1;
  • 770 645 988 548 362 731 933 593 : 2 = 385 322 994 274 181 365 966 796 + 1;
  • 385 322 994 274 181 365 966 796 : 2 = 192 661 497 137 090 682 983 398 + 0;
  • 192 661 497 137 090 682 983 398 : 2 = 96 330 748 568 545 341 491 699 + 0;
  • 96 330 748 568 545 341 491 699 : 2 = 48 165 374 284 272 670 745 849 + 1;
  • 48 165 374 284 272 670 745 849 : 2 = 24 082 687 142 136 335 372 924 + 1;
  • 24 082 687 142 136 335 372 924 : 2 = 12 041 343 571 068 167 686 462 + 0;
  • 12 041 343 571 068 167 686 462 : 2 = 6 020 671 785 534 083 843 231 + 0;
  • 6 020 671 785 534 083 843 231 : 2 = 3 010 335 892 767 041 921 615 + 1;
  • 3 010 335 892 767 041 921 615 : 2 = 1 505 167 946 383 520 960 807 + 1;
  • 1 505 167 946 383 520 960 807 : 2 = 752 583 973 191 760 480 403 + 1;
  • 752 583 973 191 760 480 403 : 2 = 376 291 986 595 880 240 201 + 1;
  • 376 291 986 595 880 240 201 : 2 = 188 145 993 297 940 120 100 + 1;
  • 188 145 993 297 940 120 100 : 2 = 94 072 996 648 970 060 050 + 0;
  • 94 072 996 648 970 060 050 : 2 = 47 036 498 324 485 030 025 + 0;
  • 47 036 498 324 485 030 025 : 2 = 23 518 249 162 242 515 012 + 1;
  • 23 518 249 162 242 515 012 : 2 = 11 759 124 581 121 257 506 + 0;
  • 11 759 124 581 121 257 506 : 2 = 5 879 562 290 560 628 753 + 0;
  • 5 879 562 290 560 628 753 : 2 = 2 939 781 145 280 314 376 + 1;
  • 2 939 781 145 280 314 376 : 2 = 1 469 890 572 640 157 188 + 0;
  • 1 469 890 572 640 157 188 : 2 = 734 945 286 320 078 594 + 0;
  • 734 945 286 320 078 594 : 2 = 367 472 643 160 039 297 + 0;
  • 367 472 643 160 039 297 : 2 = 183 736 321 580 019 648 + 1;
  • 183 736 321 580 019 648 : 2 = 91 868 160 790 009 824 + 0;
  • 91 868 160 790 009 824 : 2 = 45 934 080 395 004 912 + 0;
  • 45 934 080 395 004 912 : 2 = 22 967 040 197 502 456 + 0;
  • 22 967 040 197 502 456 : 2 = 11 483 520 098 751 228 + 0;
  • 11 483 520 098 751 228 : 2 = 5 741 760 049 375 614 + 0;
  • 5 741 760 049 375 614 : 2 = 2 870 880 024 687 807 + 0;
  • 2 870 880 024 687 807 : 2 = 1 435 440 012 343 903 + 1;
  • 1 435 440 012 343 903 : 2 = 717 720 006 171 951 + 1;
  • 717 720 006 171 951 : 2 = 358 860 003 085 975 + 1;
  • 358 860 003 085 975 : 2 = 179 430 001 542 987 + 1;
  • 179 430 001 542 987 : 2 = 89 715 000 771 493 + 1;
  • 89 715 000 771 493 : 2 = 44 857 500 385 746 + 1;
  • 44 857 500 385 746 : 2 = 22 428 750 192 873 + 0;
  • 22 428 750 192 873 : 2 = 11 214 375 096 436 + 1;
  • 11 214 375 096 436 : 2 = 5 607 187 548 218 + 0;
  • 5 607 187 548 218 : 2 = 2 803 593 774 109 + 0;
  • 2 803 593 774 109 : 2 = 1 401 796 887 054 + 1;
  • 1 401 796 887 054 : 2 = 700 898 443 527 + 0;
  • 700 898 443 527 : 2 = 350 449 221 763 + 1;
  • 350 449 221 763 : 2 = 175 224 610 881 + 1;
  • 175 224 610 881 : 2 = 87 612 305 440 + 1;
  • 87 612 305 440 : 2 = 43 806 152 720 + 0;
  • 43 806 152 720 : 2 = 21 903 076 360 + 0;
  • 21 903 076 360 : 2 = 10 951 538 180 + 0;
  • 10 951 538 180 : 2 = 5 475 769 090 + 0;
  • 5 475 769 090 : 2 = 2 737 884 545 + 0;
  • 2 737 884 545 : 2 = 1 368 942 272 + 1;
  • 1 368 942 272 : 2 = 684 471 136 + 0;
  • 684 471 136 : 2 = 342 235 568 + 0;
  • 342 235 568 : 2 = 171 117 784 + 0;
  • 171 117 784 : 2 = 85 558 892 + 0;
  • 85 558 892 : 2 = 42 779 446 + 0;
  • 42 779 446 : 2 = 21 389 723 + 0;
  • 21 389 723 : 2 = 10 694 861 + 1;
  • 10 694 861 : 2 = 5 347 430 + 1;
  • 5 347 430 : 2 = 2 673 715 + 0;
  • 2 673 715 : 2 = 1 336 857 + 1;
  • 1 336 857 : 2 = 668 428 + 1;
  • 668 428 : 2 = 334 214 + 0;
  • 334 214 : 2 = 167 107 + 0;
  • 167 107 : 2 = 83 553 + 1;
  • 83 553 : 2 = 41 776 + 1;
  • 41 776 : 2 = 20 888 + 0;
  • 20 888 : 2 = 10 444 + 0;
  • 10 444 : 2 = 5 222 + 0;
  • 5 222 : 2 = 2 611 + 0;
  • 2 611 : 2 = 1 305 + 1;
  • 1 305 : 2 = 652 + 1;
  • 652 : 2 = 326 + 0;
  • 326 : 2 = 163 + 0;
  • 163 : 2 = 81 + 1;
  • 81 : 2 = 40 + 1;
  • 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.

101 010 111 011 011 000 000 000 000 025(10) =


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


101 010 111 011 011 000 000 000 000 025(10) =


1 0100 0110 0110 0001 1001 1011 0000 0010 0000 1110 1001 0111 1110 0000 0100 0100 1001 1111 0011 0011 1000 0000 0001 1001(2) =


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


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


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 0011 0011 0000 1100 1101 1 0000 0010 0000 1110 1001 0111 1110 0000 0100 0100 1001 1111 0011 0011 1000 0000 0001 1001 =


010 0011 0011 0000 1100 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 1111


Mantisă (23 biți) =
010 0011 0011 0000 1100 1101


Numărul zecimal 101 010 111 011 011 000 000 000 000 025 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1101 1111 - 010 0011 0011 0000 1100 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