23 203 124 999 999 999 999 999 587 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 23 203 124 999 999 999 999 999 587(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
23 203 124 999 999 999 999 999 587(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;
  • 23 203 124 999 999 999 999 999 587 : 2 = 11 601 562 499 999 999 999 999 793 + 1;
  • 11 601 562 499 999 999 999 999 793 : 2 = 5 800 781 249 999 999 999 999 896 + 1;
  • 5 800 781 249 999 999 999 999 896 : 2 = 2 900 390 624 999 999 999 999 948 + 0;
  • 2 900 390 624 999 999 999 999 948 : 2 = 1 450 195 312 499 999 999 999 974 + 0;
  • 1 450 195 312 499 999 999 999 974 : 2 = 725 097 656 249 999 999 999 987 + 0;
  • 725 097 656 249 999 999 999 987 : 2 = 362 548 828 124 999 999 999 993 + 1;
  • 362 548 828 124 999 999 999 993 : 2 = 181 274 414 062 499 999 999 996 + 1;
  • 181 274 414 062 499 999 999 996 : 2 = 90 637 207 031 249 999 999 998 + 0;
  • 90 637 207 031 249 999 999 998 : 2 = 45 318 603 515 624 999 999 999 + 0;
  • 45 318 603 515 624 999 999 999 : 2 = 22 659 301 757 812 499 999 999 + 1;
  • 22 659 301 757 812 499 999 999 : 2 = 11 329 650 878 906 249 999 999 + 1;
  • 11 329 650 878 906 249 999 999 : 2 = 5 664 825 439 453 124 999 999 + 1;
  • 5 664 825 439 453 124 999 999 : 2 = 2 832 412 719 726 562 499 999 + 1;
  • 2 832 412 719 726 562 499 999 : 2 = 1 416 206 359 863 281 249 999 + 1;
  • 1 416 206 359 863 281 249 999 : 2 = 708 103 179 931 640 624 999 + 1;
  • 708 103 179 931 640 624 999 : 2 = 354 051 589 965 820 312 499 + 1;
  • 354 051 589 965 820 312 499 : 2 = 177 025 794 982 910 156 249 + 1;
  • 177 025 794 982 910 156 249 : 2 = 88 512 897 491 455 078 124 + 1;
  • 88 512 897 491 455 078 124 : 2 = 44 256 448 745 727 539 062 + 0;
  • 44 256 448 745 727 539 062 : 2 = 22 128 224 372 863 769 531 + 0;
  • 22 128 224 372 863 769 531 : 2 = 11 064 112 186 431 884 765 + 1;
  • 11 064 112 186 431 884 765 : 2 = 5 532 056 093 215 942 382 + 1;
  • 5 532 056 093 215 942 382 : 2 = 2 766 028 046 607 971 191 + 0;
  • 2 766 028 046 607 971 191 : 2 = 1 383 014 023 303 985 595 + 1;
  • 1 383 014 023 303 985 595 : 2 = 691 507 011 651 992 797 + 1;
  • 691 507 011 651 992 797 : 2 = 345 753 505 825 996 398 + 1;
  • 345 753 505 825 996 398 : 2 = 172 876 752 912 998 199 + 0;
  • 172 876 752 912 998 199 : 2 = 86 438 376 456 499 099 + 1;
  • 86 438 376 456 499 099 : 2 = 43 219 188 228 249 549 + 1;
  • 43 219 188 228 249 549 : 2 = 21 609 594 114 124 774 + 1;
  • 21 609 594 114 124 774 : 2 = 10 804 797 057 062 387 + 0;
  • 10 804 797 057 062 387 : 2 = 5 402 398 528 531 193 + 1;
  • 5 402 398 528 531 193 : 2 = 2 701 199 264 265 596 + 1;
  • 2 701 199 264 265 596 : 2 = 1 350 599 632 132 798 + 0;
  • 1 350 599 632 132 798 : 2 = 675 299 816 066 399 + 0;
  • 675 299 816 066 399 : 2 = 337 649 908 033 199 + 1;
  • 337 649 908 033 199 : 2 = 168 824 954 016 599 + 1;
  • 168 824 954 016 599 : 2 = 84 412 477 008 299 + 1;
  • 84 412 477 008 299 : 2 = 42 206 238 504 149 + 1;
  • 42 206 238 504 149 : 2 = 21 103 119 252 074 + 1;
  • 21 103 119 252 074 : 2 = 10 551 559 626 037 + 0;
  • 10 551 559 626 037 : 2 = 5 275 779 813 018 + 1;
  • 5 275 779 813 018 : 2 = 2 637 889 906 509 + 0;
  • 2 637 889 906 509 : 2 = 1 318 944 953 254 + 1;
  • 1 318 944 953 254 : 2 = 659 472 476 627 + 0;
  • 659 472 476 627 : 2 = 329 736 238 313 + 1;
  • 329 736 238 313 : 2 = 164 868 119 156 + 1;
  • 164 868 119 156 : 2 = 82 434 059 578 + 0;
  • 82 434 059 578 : 2 = 41 217 029 789 + 0;
  • 41 217 029 789 : 2 = 20 608 514 894 + 1;
  • 20 608 514 894 : 2 = 10 304 257 447 + 0;
  • 10 304 257 447 : 2 = 5 152 128 723 + 1;
  • 5 152 128 723 : 2 = 2 576 064 361 + 1;
  • 2 576 064 361 : 2 = 1 288 032 180 + 1;
  • 1 288 032 180 : 2 = 644 016 090 + 0;
  • 644 016 090 : 2 = 322 008 045 + 0;
  • 322 008 045 : 2 = 161 004 022 + 1;
  • 161 004 022 : 2 = 80 502 011 + 0;
  • 80 502 011 : 2 = 40 251 005 + 1;
  • 40 251 005 : 2 = 20 125 502 + 1;
  • 20 125 502 : 2 = 10 062 751 + 0;
  • 10 062 751 : 2 = 5 031 375 + 1;
  • 5 031 375 : 2 = 2 515 687 + 1;
  • 2 515 687 : 2 = 1 257 843 + 1;
  • 1 257 843 : 2 = 628 921 + 1;
  • 628 921 : 2 = 314 460 + 1;
  • 314 460 : 2 = 157 230 + 0;
  • 157 230 : 2 = 78 615 + 0;
  • 78 615 : 2 = 39 307 + 1;
  • 39 307 : 2 = 19 653 + 1;
  • 19 653 : 2 = 9 826 + 1;
  • 9 826 : 2 = 4 913 + 0;
  • 4 913 : 2 = 2 456 + 1;
  • 2 456 : 2 = 1 228 + 0;
  • 1 228 : 2 = 614 + 0;
  • 614 : 2 = 307 + 0;
  • 307 : 2 = 153 + 1;
  • 153 : 2 = 76 + 1;
  • 76 : 2 = 38 + 0;
  • 38 : 2 = 19 + 0;
  • 19 : 2 = 9 + 1;
  • 9 : 2 = 4 + 1;
  • 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.

23 203 124 999 999 999 999 999 587(10) =


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


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

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


23 203 124 999 999 999 999 999 587(10) =


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


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


1,0011 0011 0001 0111 0011 1110 1101 0011 1010 0110 1010 1111 1001 1011 1011 1011 0011 1111 1110 0110 0011(2) × 284


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


Mantisă (nenormalizată):
1,0011 0011 0001 0111 0011 1110 1101 0011 1010 0110 1010 1111 1001 1011 1011 1011 0011 1111 1110 0110 0011


5. Ajustează exponentul.

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


Exponent (ajustat) =


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


84 + 2(8-1) - 1 =


(84 + 127)(10) =


211(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;
  • 211 : 2 = 105 + 1;
  • 105 : 2 = 52 + 1;
  • 52 : 2 = 26 + 0;
  • 26 : 2 = 13 + 0;
  • 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) =


211(10) =


1101 0011(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. 001 1001 1000 1011 1001 1111 0 1101 0011 1010 0110 1010 1111 1001 1011 1011 1011 0011 1111 1110 0110 0011 =


001 1001 1000 1011 1001 1111


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 0011


Mantisă (23 biți) =
001 1001 1000 1011 1001 1111


Numărul zecimal 23 203 124 999 999 999 999 999 587 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1101 0011 - 001 1001 1000 1011 1001 1111


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