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

Scriere 1 000 001 000 999 999 999 999 999 998 907(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 000 001 000 999 999 999 999 999 998 907(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 000 001 000 999 999 999 999 999 998 907 : 2 = 500 000 500 499 999 999 999 999 999 453 + 1;
  • 500 000 500 499 999 999 999 999 999 453 : 2 = 250 000 250 249 999 999 999 999 999 726 + 1;
  • 250 000 250 249 999 999 999 999 999 726 : 2 = 125 000 125 124 999 999 999 999 999 863 + 0;
  • 125 000 125 124 999 999 999 999 999 863 : 2 = 62 500 062 562 499 999 999 999 999 931 + 1;
  • 62 500 062 562 499 999 999 999 999 931 : 2 = 31 250 031 281 249 999 999 999 999 965 + 1;
  • 31 250 031 281 249 999 999 999 999 965 : 2 = 15 625 015 640 624 999 999 999 999 982 + 1;
  • 15 625 015 640 624 999 999 999 999 982 : 2 = 7 812 507 820 312 499 999 999 999 991 + 0;
  • 7 812 507 820 312 499 999 999 999 991 : 2 = 3 906 253 910 156 249 999 999 999 995 + 1;
  • 3 906 253 910 156 249 999 999 999 995 : 2 = 1 953 126 955 078 124 999 999 999 997 + 1;
  • 1 953 126 955 078 124 999 999 999 997 : 2 = 976 563 477 539 062 499 999 999 998 + 1;
  • 976 563 477 539 062 499 999 999 998 : 2 = 488 281 738 769 531 249 999 999 999 + 0;
  • 488 281 738 769 531 249 999 999 999 : 2 = 244 140 869 384 765 624 999 999 999 + 1;
  • 244 140 869 384 765 624 999 999 999 : 2 = 122 070 434 692 382 812 499 999 999 + 1;
  • 122 070 434 692 382 812 499 999 999 : 2 = 61 035 217 346 191 406 249 999 999 + 1;
  • 61 035 217 346 191 406 249 999 999 : 2 = 30 517 608 673 095 703 124 999 999 + 1;
  • 30 517 608 673 095 703 124 999 999 : 2 = 15 258 804 336 547 851 562 499 999 + 1;
  • 15 258 804 336 547 851 562 499 999 : 2 = 7 629 402 168 273 925 781 249 999 + 1;
  • 7 629 402 168 273 925 781 249 999 : 2 = 3 814 701 084 136 962 890 624 999 + 1;
  • 3 814 701 084 136 962 890 624 999 : 2 = 1 907 350 542 068 481 445 312 499 + 1;
  • 1 907 350 542 068 481 445 312 499 : 2 = 953 675 271 034 240 722 656 249 + 1;
  • 953 675 271 034 240 722 656 249 : 2 = 476 837 635 517 120 361 328 124 + 1;
  • 476 837 635 517 120 361 328 124 : 2 = 238 418 817 758 560 180 664 062 + 0;
  • 238 418 817 758 560 180 664 062 : 2 = 119 209 408 879 280 090 332 031 + 0;
  • 119 209 408 879 280 090 332 031 : 2 = 59 604 704 439 640 045 166 015 + 1;
  • 59 604 704 439 640 045 166 015 : 2 = 29 802 352 219 820 022 583 007 + 1;
  • 29 802 352 219 820 022 583 007 : 2 = 14 901 176 109 910 011 291 503 + 1;
  • 14 901 176 109 910 011 291 503 : 2 = 7 450 588 054 955 005 645 751 + 1;
  • 7 450 588 054 955 005 645 751 : 2 = 3 725 294 027 477 502 822 875 + 1;
  • 3 725 294 027 477 502 822 875 : 2 = 1 862 647 013 738 751 411 437 + 1;
  • 1 862 647 013 738 751 411 437 : 2 = 931 323 506 869 375 705 718 + 1;
  • 931 323 506 869 375 705 718 : 2 = 465 661 753 434 687 852 859 + 0;
  • 465 661 753 434 687 852 859 : 2 = 232 830 876 717 343 926 429 + 1;
  • 232 830 876 717 343 926 429 : 2 = 116 415 438 358 671 963 214 + 1;
  • 116 415 438 358 671 963 214 : 2 = 58 207 719 179 335 981 607 + 0;
  • 58 207 719 179 335 981 607 : 2 = 29 103 859 589 667 990 803 + 1;
  • 29 103 859 589 667 990 803 : 2 = 14 551 929 794 833 995 401 + 1;
  • 14 551 929 794 833 995 401 : 2 = 7 275 964 897 416 997 700 + 1;
  • 7 275 964 897 416 997 700 : 2 = 3 637 982 448 708 498 850 + 0;
  • 3 637 982 448 708 498 850 : 2 = 1 818 991 224 354 249 425 + 0;
  • 1 818 991 224 354 249 425 : 2 = 909 495 612 177 124 712 + 1;
  • 909 495 612 177 124 712 : 2 = 454 747 806 088 562 356 + 0;
  • 454 747 806 088 562 356 : 2 = 227 373 903 044 281 178 + 0;
  • 227 373 903 044 281 178 : 2 = 113 686 951 522 140 589 + 0;
  • 113 686 951 522 140 589 : 2 = 56 843 475 761 070 294 + 1;
  • 56 843 475 761 070 294 : 2 = 28 421 737 880 535 147 + 0;
  • 28 421 737 880 535 147 : 2 = 14 210 868 940 267 573 + 1;
  • 14 210 868 940 267 573 : 2 = 7 105 434 470 133 786 + 1;
  • 7 105 434 470 133 786 : 2 = 3 552 717 235 066 893 + 0;
  • 3 552 717 235 066 893 : 2 = 1 776 358 617 533 446 + 1;
  • 1 776 358 617 533 446 : 2 = 888 179 308 766 723 + 0;
  • 888 179 308 766 723 : 2 = 444 089 654 383 361 + 1;
  • 444 089 654 383 361 : 2 = 222 044 827 191 680 + 1;
  • 222 044 827 191 680 : 2 = 111 022 413 595 840 + 0;
  • 111 022 413 595 840 : 2 = 55 511 206 797 920 + 0;
  • 55 511 206 797 920 : 2 = 27 755 603 398 960 + 0;
  • 27 755 603 398 960 : 2 = 13 877 801 699 480 + 0;
  • 13 877 801 699 480 : 2 = 6 938 900 849 740 + 0;
  • 6 938 900 849 740 : 2 = 3 469 450 424 870 + 0;
  • 3 469 450 424 870 : 2 = 1 734 725 212 435 + 0;
  • 1 734 725 212 435 : 2 = 867 362 606 217 + 1;
  • 867 362 606 217 : 2 = 433 681 303 108 + 1;
  • 433 681 303 108 : 2 = 216 840 651 554 + 0;
  • 216 840 651 554 : 2 = 108 420 325 777 + 0;
  • 108 420 325 777 : 2 = 54 210 162 888 + 1;
  • 54 210 162 888 : 2 = 27 105 081 444 + 0;
  • 27 105 081 444 : 2 = 13 552 540 722 + 0;
  • 13 552 540 722 : 2 = 6 776 270 361 + 0;
  • 6 776 270 361 : 2 = 3 388 135 180 + 1;
  • 3 388 135 180 : 2 = 1 694 067 590 + 0;
  • 1 694 067 590 : 2 = 847 033 795 + 0;
  • 847 033 795 : 2 = 423 516 897 + 1;
  • 423 516 897 : 2 = 211 758 448 + 1;
  • 211 758 448 : 2 = 105 879 224 + 0;
  • 105 879 224 : 2 = 52 939 612 + 0;
  • 52 939 612 : 2 = 26 469 806 + 0;
  • 26 469 806 : 2 = 13 234 903 + 0;
  • 13 234 903 : 2 = 6 617 451 + 1;
  • 6 617 451 : 2 = 3 308 725 + 1;
  • 3 308 725 : 2 = 1 654 362 + 1;
  • 1 654 362 : 2 = 827 181 + 0;
  • 827 181 : 2 = 413 590 + 1;
  • 413 590 : 2 = 206 795 + 0;
  • 206 795 : 2 = 103 397 + 1;
  • 103 397 : 2 = 51 698 + 1;
  • 51 698 : 2 = 25 849 + 0;
  • 25 849 : 2 = 12 924 + 1;
  • 12 924 : 2 = 6 462 + 0;
  • 6 462 : 2 = 3 231 + 0;
  • 3 231 : 2 = 1 615 + 1;
  • 1 615 : 2 = 807 + 1;
  • 807 : 2 = 403 + 1;
  • 403 : 2 = 201 + 1;
  • 201 : 2 = 100 + 1;
  • 100 : 2 = 50 + 0;
  • 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 000 001 000 999 999 999 999 999 998 907(10) =


1100 1001 1111 0010 1101 0111 0000 1100 1000 1001 1000 0000 1101 0110 1000 1001 1101 1011 1111 1001 1111 1111 1011 1011 1011(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 000 001 000 999 999 999 999 999 998 907(10) =


1100 1001 1111 0010 1101 0111 0000 1100 1000 1001 1000 0000 1101 0110 1000 1001 1101 1011 1111 1001 1111 1111 1011 1011 1011(2) =


1100 1001 1111 0010 1101 0111 0000 1100 1000 1001 1000 0000 1101 0110 1000 1001 1101 1011 1111 1001 1111 1111 1011 1011 1011(2) × 20 =


1,1001 0011 1110 0101 1010 1110 0001 1001 0001 0011 0000 0001 1010 1101 0001 0011 1011 0111 1111 0011 1111 1111 0111 0111 011(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 0011 1110 0101 1010 1110 0001 1001 0001 0011 0000 0001 1010 1101 0001 0011 1011 0111 1111 0011 1111 1111 0111 0111 011


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 1001 1111 0010 1101 0111 0000 1100 1000 1001 1000 0000 1101 0110 1000 1001 1101 1011 1111 1001 1111 1111 1011 1011 1011 =


100 1001 1111 0010 1101 0111


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 1001 1111 0010 1101 0111


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

0 - 1110 0010 - 100 1001 1111 0010 1101 0111


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