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

Scriere 1 000 000 010 099 999 999 999 999 999 626(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 000 010 099 999 999 999 999 999 626(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 000 010 099 999 999 999 999 999 626 : 2 = 500 000 005 049 999 999 999 999 999 813 + 0;
  • 500 000 005 049 999 999 999 999 999 813 : 2 = 250 000 002 524 999 999 999 999 999 906 + 1;
  • 250 000 002 524 999 999 999 999 999 906 : 2 = 125 000 001 262 499 999 999 999 999 953 + 0;
  • 125 000 001 262 499 999 999 999 999 953 : 2 = 62 500 000 631 249 999 999 999 999 976 + 1;
  • 62 500 000 631 249 999 999 999 999 976 : 2 = 31 250 000 315 624 999 999 999 999 988 + 0;
  • 31 250 000 315 624 999 999 999 999 988 : 2 = 15 625 000 157 812 499 999 999 999 994 + 0;
  • 15 625 000 157 812 499 999 999 999 994 : 2 = 7 812 500 078 906 249 999 999 999 997 + 0;
  • 7 812 500 078 906 249 999 999 999 997 : 2 = 3 906 250 039 453 124 999 999 999 998 + 1;
  • 3 906 250 039 453 124 999 999 999 998 : 2 = 1 953 125 019 726 562 499 999 999 999 + 0;
  • 1 953 125 019 726 562 499 999 999 999 : 2 = 976 562 509 863 281 249 999 999 999 + 1;
  • 976 562 509 863 281 249 999 999 999 : 2 = 488 281 254 931 640 624 999 999 999 + 1;
  • 488 281 254 931 640 624 999 999 999 : 2 = 244 140 627 465 820 312 499 999 999 + 1;
  • 244 140 627 465 820 312 499 999 999 : 2 = 122 070 313 732 910 156 249 999 999 + 1;
  • 122 070 313 732 910 156 249 999 999 : 2 = 61 035 156 866 455 078 124 999 999 + 1;
  • 61 035 156 866 455 078 124 999 999 : 2 = 30 517 578 433 227 539 062 499 999 + 1;
  • 30 517 578 433 227 539 062 499 999 : 2 = 15 258 789 216 613 769 531 249 999 + 1;
  • 15 258 789 216 613 769 531 249 999 : 2 = 7 629 394 608 306 884 765 624 999 + 1;
  • 7 629 394 608 306 884 765 624 999 : 2 = 3 814 697 304 153 442 382 812 499 + 1;
  • 3 814 697 304 153 442 382 812 499 : 2 = 1 907 348 652 076 721 191 406 249 + 1;
  • 1 907 348 652 076 721 191 406 249 : 2 = 953 674 326 038 360 595 703 124 + 1;
  • 953 674 326 038 360 595 703 124 : 2 = 476 837 163 019 180 297 851 562 + 0;
  • 476 837 163 019 180 297 851 562 : 2 = 238 418 581 509 590 148 925 781 + 0;
  • 238 418 581 509 590 148 925 781 : 2 = 119 209 290 754 795 074 462 890 + 1;
  • 119 209 290 754 795 074 462 890 : 2 = 59 604 645 377 397 537 231 445 + 0;
  • 59 604 645 377 397 537 231 445 : 2 = 29 802 322 688 698 768 615 722 + 1;
  • 29 802 322 688 698 768 615 722 : 2 = 14 901 161 344 349 384 307 861 + 0;
  • 14 901 161 344 349 384 307 861 : 2 = 7 450 580 672 174 692 153 930 + 1;
  • 7 450 580 672 174 692 153 930 : 2 = 3 725 290 336 087 346 076 965 + 0;
  • 3 725 290 336 087 346 076 965 : 2 = 1 862 645 168 043 673 038 482 + 1;
  • 1 862 645 168 043 673 038 482 : 2 = 931 322 584 021 836 519 241 + 0;
  • 931 322 584 021 836 519 241 : 2 = 465 661 292 010 918 259 620 + 1;
  • 465 661 292 010 918 259 620 : 2 = 232 830 646 005 459 129 810 + 0;
  • 232 830 646 005 459 129 810 : 2 = 116 415 323 002 729 564 905 + 0;
  • 116 415 323 002 729 564 905 : 2 = 58 207 661 501 364 782 452 + 1;
  • 58 207 661 501 364 782 452 : 2 = 29 103 830 750 682 391 226 + 0;
  • 29 103 830 750 682 391 226 : 2 = 14 551 915 375 341 195 613 + 0;
  • 14 551 915 375 341 195 613 : 2 = 7 275 957 687 670 597 806 + 1;
  • 7 275 957 687 670 597 806 : 2 = 3 637 978 843 835 298 903 + 0;
  • 3 637 978 843 835 298 903 : 2 = 1 818 989 421 917 649 451 + 1;
  • 1 818 989 421 917 649 451 : 2 = 909 494 710 958 824 725 + 1;
  • 909 494 710 958 824 725 : 2 = 454 747 355 479 412 362 + 1;
  • 454 747 355 479 412 362 : 2 = 227 373 677 739 706 181 + 0;
  • 227 373 677 739 706 181 : 2 = 113 686 838 869 853 090 + 1;
  • 113 686 838 869 853 090 : 2 = 56 843 419 434 926 545 + 0;
  • 56 843 419 434 926 545 : 2 = 28 421 709 717 463 272 + 1;
  • 28 421 709 717 463 272 : 2 = 14 210 854 858 731 636 + 0;
  • 14 210 854 858 731 636 : 2 = 7 105 427 429 365 818 + 0;
  • 7 105 427 429 365 818 : 2 = 3 552 713 714 682 909 + 0;
  • 3 552 713 714 682 909 : 2 = 1 776 356 857 341 454 + 1;
  • 1 776 356 857 341 454 : 2 = 888 178 428 670 727 + 0;
  • 888 178 428 670 727 : 2 = 444 089 214 335 363 + 1;
  • 444 089 214 335 363 : 2 = 222 044 607 167 681 + 1;
  • 222 044 607 167 681 : 2 = 111 022 303 583 840 + 1;
  • 111 022 303 583 840 : 2 = 55 511 151 791 920 + 0;
  • 55 511 151 791 920 : 2 = 27 755 575 895 960 + 0;
  • 27 755 575 895 960 : 2 = 13 877 787 947 980 + 0;
  • 13 877 787 947 980 : 2 = 6 938 893 973 990 + 0;
  • 6 938 893 973 990 : 2 = 3 469 446 986 995 + 0;
  • 3 469 446 986 995 : 2 = 1 734 723 493 497 + 1;
  • 1 734 723 493 497 : 2 = 867 361 746 748 + 1;
  • 867 361 746 748 : 2 = 433 680 873 374 + 0;
  • 433 680 873 374 : 2 = 216 840 436 687 + 0;
  • 216 840 436 687 : 2 = 108 420 218 343 + 1;
  • 108 420 218 343 : 2 = 54 210 109 171 + 1;
  • 54 210 109 171 : 2 = 27 105 054 585 + 1;
  • 27 105 054 585 : 2 = 13 552 527 292 + 1;
  • 13 552 527 292 : 2 = 6 776 263 646 + 0;
  • 6 776 263 646 : 2 = 3 388 131 823 + 0;
  • 3 388 131 823 : 2 = 1 694 065 911 + 1;
  • 1 694 065 911 : 2 = 847 032 955 + 1;
  • 847 032 955 : 2 = 423 516 477 + 1;
  • 423 516 477 : 2 = 211 758 238 + 1;
  • 211 758 238 : 2 = 105 879 119 + 0;
  • 105 879 119 : 2 = 52 939 559 + 1;
  • 52 939 559 : 2 = 26 469 779 + 1;
  • 26 469 779 : 2 = 13 234 889 + 1;
  • 13 234 889 : 2 = 6 617 444 + 1;
  • 6 617 444 : 2 = 3 308 722 + 0;
  • 3 308 722 : 2 = 1 654 361 + 0;
  • 1 654 361 : 2 = 827 180 + 1;
  • 827 180 : 2 = 413 590 + 0;
  • 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 000 010 099 999 999 999 999 999 626(10) =


1100 1001 1111 0010 1100 1001 1110 1111 0011 1100 1100 0001 1101 0001 0101 1101 0010 0101 0101 0100 1111 1111 1110 1000 1010(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 000 010 099 999 999 999 999 999 626(10) =


1100 1001 1111 0010 1100 1001 1110 1111 0011 1100 1100 0001 1101 0001 0101 1101 0010 0101 0101 0100 1111 1111 1110 1000 1010(2) =


1100 1001 1111 0010 1100 1001 1110 1111 0011 1100 1100 0001 1101 0001 0101 1101 0010 0101 0101 0100 1111 1111 1110 1000 1010(2) × 20 =


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


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 1100 1001 1110 1111 0011 1100 1100 0001 1101 0001 0101 1101 0010 0101 0101 0100 1111 1111 1110 1000 1010 =


100 1001 1111 0010 1100 1001


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 1100 1001


Numărul zecimal 1 000 000 010 099 999 999 999 999 999 626 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 1100 1001


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