1 001 000 100 110 010 001 099 999 998 900 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 1 001 000 100 110 010 001 099 999 998 900(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
1 001 000 100 110 010 001 099 999 998 900(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;
  • 1 001 000 100 110 010 001 099 999 998 900 : 2 = 500 500 050 055 005 000 549 999 999 450 + 0;
  • 500 500 050 055 005 000 549 999 999 450 : 2 = 250 250 025 027 502 500 274 999 999 725 + 0;
  • 250 250 025 027 502 500 274 999 999 725 : 2 = 125 125 012 513 751 250 137 499 999 862 + 1;
  • 125 125 012 513 751 250 137 499 999 862 : 2 = 62 562 506 256 875 625 068 749 999 931 + 0;
  • 62 562 506 256 875 625 068 749 999 931 : 2 = 31 281 253 128 437 812 534 374 999 965 + 1;
  • 31 281 253 128 437 812 534 374 999 965 : 2 = 15 640 626 564 218 906 267 187 499 982 + 1;
  • 15 640 626 564 218 906 267 187 499 982 : 2 = 7 820 313 282 109 453 133 593 749 991 + 0;
  • 7 820 313 282 109 453 133 593 749 991 : 2 = 3 910 156 641 054 726 566 796 874 995 + 1;
  • 3 910 156 641 054 726 566 796 874 995 : 2 = 1 955 078 320 527 363 283 398 437 497 + 1;
  • 1 955 078 320 527 363 283 398 437 497 : 2 = 977 539 160 263 681 641 699 218 748 + 1;
  • 977 539 160 263 681 641 699 218 748 : 2 = 488 769 580 131 840 820 849 609 374 + 0;
  • 488 769 580 131 840 820 849 609 374 : 2 = 244 384 790 065 920 410 424 804 687 + 0;
  • 244 384 790 065 920 410 424 804 687 : 2 = 122 192 395 032 960 205 212 402 343 + 1;
  • 122 192 395 032 960 205 212 402 343 : 2 = 61 096 197 516 480 102 606 201 171 + 1;
  • 61 096 197 516 480 102 606 201 171 : 2 = 30 548 098 758 240 051 303 100 585 + 1;
  • 30 548 098 758 240 051 303 100 585 : 2 = 15 274 049 379 120 025 651 550 292 + 1;
  • 15 274 049 379 120 025 651 550 292 : 2 = 7 637 024 689 560 012 825 775 146 + 0;
  • 7 637 024 689 560 012 825 775 146 : 2 = 3 818 512 344 780 006 412 887 573 + 0;
  • 3 818 512 344 780 006 412 887 573 : 2 = 1 909 256 172 390 003 206 443 786 + 1;
  • 1 909 256 172 390 003 206 443 786 : 2 = 954 628 086 195 001 603 221 893 + 0;
  • 954 628 086 195 001 603 221 893 : 2 = 477 314 043 097 500 801 610 946 + 1;
  • 477 314 043 097 500 801 610 946 : 2 = 238 657 021 548 750 400 805 473 + 0;
  • 238 657 021 548 750 400 805 473 : 2 = 119 328 510 774 375 200 402 736 + 1;
  • 119 328 510 774 375 200 402 736 : 2 = 59 664 255 387 187 600 201 368 + 0;
  • 59 664 255 387 187 600 201 368 : 2 = 29 832 127 693 593 800 100 684 + 0;
  • 29 832 127 693 593 800 100 684 : 2 = 14 916 063 846 796 900 050 342 + 0;
  • 14 916 063 846 796 900 050 342 : 2 = 7 458 031 923 398 450 025 171 + 0;
  • 7 458 031 923 398 450 025 171 : 2 = 3 729 015 961 699 225 012 585 + 1;
  • 3 729 015 961 699 225 012 585 : 2 = 1 864 507 980 849 612 506 292 + 1;
  • 1 864 507 980 849 612 506 292 : 2 = 932 253 990 424 806 253 146 + 0;
  • 932 253 990 424 806 253 146 : 2 = 466 126 995 212 403 126 573 + 0;
  • 466 126 995 212 403 126 573 : 2 = 233 063 497 606 201 563 286 + 1;
  • 233 063 497 606 201 563 286 : 2 = 116 531 748 803 100 781 643 + 0;
  • 116 531 748 803 100 781 643 : 2 = 58 265 874 401 550 390 821 + 1;
  • 58 265 874 401 550 390 821 : 2 = 29 132 937 200 775 195 410 + 1;
  • 29 132 937 200 775 195 410 : 2 = 14 566 468 600 387 597 705 + 0;
  • 14 566 468 600 387 597 705 : 2 = 7 283 234 300 193 798 852 + 1;
  • 7 283 234 300 193 798 852 : 2 = 3 641 617 150 096 899 426 + 0;
  • 3 641 617 150 096 899 426 : 2 = 1 820 808 575 048 449 713 + 0;
  • 1 820 808 575 048 449 713 : 2 = 910 404 287 524 224 856 + 1;
  • 910 404 287 524 224 856 : 2 = 455 202 143 762 112 428 + 0;
  • 455 202 143 762 112 428 : 2 = 227 601 071 881 056 214 + 0;
  • 227 601 071 881 056 214 : 2 = 113 800 535 940 528 107 + 0;
  • 113 800 535 940 528 107 : 2 = 56 900 267 970 264 053 + 1;
  • 56 900 267 970 264 053 : 2 = 28 450 133 985 132 026 + 1;
  • 28 450 133 985 132 026 : 2 = 14 225 066 992 566 013 + 0;
  • 14 225 066 992 566 013 : 2 = 7 112 533 496 283 006 + 1;
  • 7 112 533 496 283 006 : 2 = 3 556 266 748 141 503 + 0;
  • 3 556 266 748 141 503 : 2 = 1 778 133 374 070 751 + 1;
  • 1 778 133 374 070 751 : 2 = 889 066 687 035 375 + 1;
  • 889 066 687 035 375 : 2 = 444 533 343 517 687 + 1;
  • 444 533 343 517 687 : 2 = 222 266 671 758 843 + 1;
  • 222 266 671 758 843 : 2 = 111 133 335 879 421 + 1;
  • 111 133 335 879 421 : 2 = 55 566 667 939 710 + 1;
  • 55 566 667 939 710 : 2 = 27 783 333 969 855 + 0;
  • 27 783 333 969 855 : 2 = 13 891 666 984 927 + 1;
  • 13 891 666 984 927 : 2 = 6 945 833 492 463 + 1;
  • 6 945 833 492 463 : 2 = 3 472 916 746 231 + 1;
  • 3 472 916 746 231 : 2 = 1 736 458 373 115 + 1;
  • 1 736 458 373 115 : 2 = 868 229 186 557 + 1;
  • 868 229 186 557 : 2 = 434 114 593 278 + 1;
  • 434 114 593 278 : 2 = 217 057 296 639 + 0;
  • 217 057 296 639 : 2 = 108 528 648 319 + 1;
  • 108 528 648 319 : 2 = 54 264 324 159 + 1;
  • 54 264 324 159 : 2 = 27 132 162 079 + 1;
  • 27 132 162 079 : 2 = 13 566 081 039 + 1;
  • 13 566 081 039 : 2 = 6 783 040 519 + 1;
  • 6 783 040 519 : 2 = 3 391 520 259 + 1;
  • 3 391 520 259 : 2 = 1 695 760 129 + 1;
  • 1 695 760 129 : 2 = 847 880 064 + 1;
  • 847 880 064 : 2 = 423 940 032 + 0;
  • 423 940 032 : 2 = 211 970 016 + 0;
  • 211 970 016 : 2 = 105 985 008 + 0;
  • 105 985 008 : 2 = 52 992 504 + 0;
  • 52 992 504 : 2 = 26 496 252 + 0;
  • 26 496 252 : 2 = 13 248 126 + 0;
  • 13 248 126 : 2 = 6 624 063 + 0;
  • 6 624 063 : 2 = 3 312 031 + 1;
  • 3 312 031 : 2 = 1 656 015 + 1;
  • 1 656 015 : 2 = 828 007 + 1;
  • 828 007 : 2 = 414 003 + 1;
  • 414 003 : 2 = 207 001 + 1;
  • 207 001 : 2 = 103 500 + 1;
  • 103 500 : 2 = 51 750 + 0;
  • 51 750 : 2 = 25 875 + 0;
  • 25 875 : 2 = 12 937 + 1;
  • 12 937 : 2 = 6 468 + 1;
  • 6 468 : 2 = 3 234 + 0;
  • 3 234 : 2 = 1 617 + 0;
  • 1 617 : 2 = 808 + 1;
  • 808 : 2 = 404 + 0;
  • 404 : 2 = 202 + 0;
  • 202 : 2 = 101 + 0;
  • 101 : 2 = 50 + 1;
  • 50 : 2 = 25 + 0;
  • 25 : 2 = 12 + 1;
  • 12 : 2 = 6 + 0;
  • 6 : 2 = 3 + 0;
  • 3 : 2 = 1 + 1;
  • 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.

1 001 000 100 110 010 001 099 999 998 900(10) =


1100 1010 0010 0110 0111 1110 0000 0011 1111 1101 1111 1011 1111 0101 1000 1001 0110 1001 1000 0101 0100 1111 0011 1011 0100(2)


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

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


1 001 000 100 110 010 001 099 999 998 900(10) =


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


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


1,1001 0100 0100 1100 1111 1100 0000 0111 1111 1011 1111 0111 1110 1011 0001 0010 1101 0011 0000 1010 1001 1110 0111 0110 100(2) × 299


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


Mantisă (nenormalizată):
1,1001 0100 0100 1100 1111 1100 0000 0111 1111 1011 1111 0111 1110 1011 0001 0010 1101 0011 0000 1010 1001 1110 0111 0110 100


5. Ajustează exponentul.

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


Exponent (ajustat) =


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


99 + 2(8-1) - 1 =


(99 + 127)(10) =


226(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;
  • 226 : 2 = 113 + 0;
  • 113 : 2 = 56 + 1;
  • 56 : 2 = 28 + 0;
  • 28 : 2 = 14 + 0;
  • 14 : 2 = 7 + 0;
  • 7 : 2 = 3 + 1;
  • 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) =


226(10) =


1110 0010(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. 100 1010 0010 0110 0111 1110 0000 0011 1111 1101 1111 1011 1111 0101 1000 1001 0110 1001 1000 0101 0100 1111 0011 1011 0100 =


100 1010 0010 0110 0111 1110


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) =
1110 0010


Mantisă (23 biți) =
100 1010 0010 0110 0111 1110


Numărul zecimal 1 001 000 100 110 010 001 099 999 998 900 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1110 0010 - 100 1010 0010 0110 0111 1110

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