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

Scriere 1 000 101 110 001 011 001 099 999 998 736(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 101 110 001 011 001 099 999 998 736(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 101 110 001 011 001 099 999 998 736 : 2 = 500 050 555 000 505 500 549 999 999 368 + 0;
  • 500 050 555 000 505 500 549 999 999 368 : 2 = 250 025 277 500 252 750 274 999 999 684 + 0;
  • 250 025 277 500 252 750 274 999 999 684 : 2 = 125 012 638 750 126 375 137 499 999 842 + 0;
  • 125 012 638 750 126 375 137 499 999 842 : 2 = 62 506 319 375 063 187 568 749 999 921 + 0;
  • 62 506 319 375 063 187 568 749 999 921 : 2 = 31 253 159 687 531 593 784 374 999 960 + 1;
  • 31 253 159 687 531 593 784 374 999 960 : 2 = 15 626 579 843 765 796 892 187 499 980 + 0;
  • 15 626 579 843 765 796 892 187 499 980 : 2 = 7 813 289 921 882 898 446 093 749 990 + 0;
  • 7 813 289 921 882 898 446 093 749 990 : 2 = 3 906 644 960 941 449 223 046 874 995 + 0;
  • 3 906 644 960 941 449 223 046 874 995 : 2 = 1 953 322 480 470 724 611 523 437 497 + 1;
  • 1 953 322 480 470 724 611 523 437 497 : 2 = 976 661 240 235 362 305 761 718 748 + 1;
  • 976 661 240 235 362 305 761 718 748 : 2 = 488 330 620 117 681 152 880 859 374 + 0;
  • 488 330 620 117 681 152 880 859 374 : 2 = 244 165 310 058 840 576 440 429 687 + 0;
  • 244 165 310 058 840 576 440 429 687 : 2 = 122 082 655 029 420 288 220 214 843 + 1;
  • 122 082 655 029 420 288 220 214 843 : 2 = 61 041 327 514 710 144 110 107 421 + 1;
  • 61 041 327 514 710 144 110 107 421 : 2 = 30 520 663 757 355 072 055 053 710 + 1;
  • 30 520 663 757 355 072 055 053 710 : 2 = 15 260 331 878 677 536 027 526 855 + 0;
  • 15 260 331 878 677 536 027 526 855 : 2 = 7 630 165 939 338 768 013 763 427 + 1;
  • 7 630 165 939 338 768 013 763 427 : 2 = 3 815 082 969 669 384 006 881 713 + 1;
  • 3 815 082 969 669 384 006 881 713 : 2 = 1 907 541 484 834 692 003 440 856 + 1;
  • 1 907 541 484 834 692 003 440 856 : 2 = 953 770 742 417 346 001 720 428 + 0;
  • 953 770 742 417 346 001 720 428 : 2 = 476 885 371 208 673 000 860 214 + 0;
  • 476 885 371 208 673 000 860 214 : 2 = 238 442 685 604 336 500 430 107 + 0;
  • 238 442 685 604 336 500 430 107 : 2 = 119 221 342 802 168 250 215 053 + 1;
  • 119 221 342 802 168 250 215 053 : 2 = 59 610 671 401 084 125 107 526 + 1;
  • 59 610 671 401 084 125 107 526 : 2 = 29 805 335 700 542 062 553 763 + 0;
  • 29 805 335 700 542 062 553 763 : 2 = 14 902 667 850 271 031 276 881 + 1;
  • 14 902 667 850 271 031 276 881 : 2 = 7 451 333 925 135 515 638 440 + 1;
  • 7 451 333 925 135 515 638 440 : 2 = 3 725 666 962 567 757 819 220 + 0;
  • 3 725 666 962 567 757 819 220 : 2 = 1 862 833 481 283 878 909 610 + 0;
  • 1 862 833 481 283 878 909 610 : 2 = 931 416 740 641 939 454 805 + 0;
  • 931 416 740 641 939 454 805 : 2 = 465 708 370 320 969 727 402 + 1;
  • 465 708 370 320 969 727 402 : 2 = 232 854 185 160 484 863 701 + 0;
  • 232 854 185 160 484 863 701 : 2 = 116 427 092 580 242 431 850 + 1;
  • 116 427 092 580 242 431 850 : 2 = 58 213 546 290 121 215 925 + 0;
  • 58 213 546 290 121 215 925 : 2 = 29 106 773 145 060 607 962 + 1;
  • 29 106 773 145 060 607 962 : 2 = 14 553 386 572 530 303 981 + 0;
  • 14 553 386 572 530 303 981 : 2 = 7 276 693 286 265 151 990 + 1;
  • 7 276 693 286 265 151 990 : 2 = 3 638 346 643 132 575 995 + 0;
  • 3 638 346 643 132 575 995 : 2 = 1 819 173 321 566 287 997 + 1;
  • 1 819 173 321 566 287 997 : 2 = 909 586 660 783 143 998 + 1;
  • 909 586 660 783 143 998 : 2 = 454 793 330 391 571 999 + 0;
  • 454 793 330 391 571 999 : 2 = 227 396 665 195 785 999 + 1;
  • 227 396 665 195 785 999 : 2 = 113 698 332 597 892 999 + 1;
  • 113 698 332 597 892 999 : 2 = 56 849 166 298 946 499 + 1;
  • 56 849 166 298 946 499 : 2 = 28 424 583 149 473 249 + 1;
  • 28 424 583 149 473 249 : 2 = 14 212 291 574 736 624 + 1;
  • 14 212 291 574 736 624 : 2 = 7 106 145 787 368 312 + 0;
  • 7 106 145 787 368 312 : 2 = 3 553 072 893 684 156 + 0;
  • 3 553 072 893 684 156 : 2 = 1 776 536 446 842 078 + 0;
  • 1 776 536 446 842 078 : 2 = 888 268 223 421 039 + 0;
  • 888 268 223 421 039 : 2 = 444 134 111 710 519 + 1;
  • 444 134 111 710 519 : 2 = 222 067 055 855 259 + 1;
  • 222 067 055 855 259 : 2 = 111 033 527 927 629 + 1;
  • 111 033 527 927 629 : 2 = 55 516 763 963 814 + 1;
  • 55 516 763 963 814 : 2 = 27 758 381 981 907 + 0;
  • 27 758 381 981 907 : 2 = 13 879 190 990 953 + 1;
  • 13 879 190 990 953 : 2 = 6 939 595 495 476 + 1;
  • 6 939 595 495 476 : 2 = 3 469 797 747 738 + 0;
  • 3 469 797 747 738 : 2 = 1 734 898 873 869 + 0;
  • 1 734 898 873 869 : 2 = 867 449 436 934 + 1;
  • 867 449 436 934 : 2 = 433 724 718 467 + 0;
  • 433 724 718 467 : 2 = 216 862 359 233 + 1;
  • 216 862 359 233 : 2 = 108 431 179 616 + 1;
  • 108 431 179 616 : 2 = 54 215 589 808 + 0;
  • 54 215 589 808 : 2 = 27 107 794 904 + 0;
  • 27 107 794 904 : 2 = 13 553 897 452 + 0;
  • 13 553 897 452 : 2 = 6 776 948 726 + 0;
  • 6 776 948 726 : 2 = 3 388 474 363 + 0;
  • 3 388 474 363 : 2 = 1 694 237 181 + 1;
  • 1 694 237 181 : 2 = 847 118 590 + 1;
  • 847 118 590 : 2 = 423 559 295 + 0;
  • 423 559 295 : 2 = 211 779 647 + 1;
  • 211 779 647 : 2 = 105 889 823 + 1;
  • 105 889 823 : 2 = 52 944 911 + 1;
  • 52 944 911 : 2 = 26 472 455 + 1;
  • 26 472 455 : 2 = 13 236 227 + 1;
  • 13 236 227 : 2 = 6 618 113 + 1;
  • 6 618 113 : 2 = 3 309 056 + 1;
  • 3 309 056 : 2 = 1 654 528 + 0;
  • 1 654 528 : 2 = 827 264 + 0;
  • 827 264 : 2 = 413 632 + 0;
  • 413 632 : 2 = 206 816 + 0;
  • 206 816 : 2 = 103 408 + 0;
  • 103 408 : 2 = 51 704 + 0;
  • 51 704 : 2 = 25 852 + 0;
  • 25 852 : 2 = 12 926 + 0;
  • 12 926 : 2 = 6 463 + 0;
  • 6 463 : 2 = 3 231 + 1;
  • 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 101 110 001 011 001 099 999 998 736(10) =


1100 1001 1111 1000 0000 0011 1111 1011 0000 0110 1001 1011 1100 0011 1110 1101 0101 0100 0110 1100 0111 0111 0011 0001 0000(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 101 110 001 011 001 099 999 998 736(10) =


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


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


1,1001 0011 1111 0000 0000 0111 1111 0110 0000 1101 0011 0111 1000 0111 1101 1010 1010 1000 1101 1000 1110 1110 0110 0010 000(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 1111 0000 0000 0111 1111 0110 0000 1101 0011 0111 1000 0111 1101 1010 1010 1000 1101 1000 1110 1110 0110 0010 000


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


100 1001 1111 1000 0000 0011


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 1000 0000 0011


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

0 - 1110 0010 - 100 1001 1111 1000 0000 0011


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