1 000 101 111 000 100 110 110 099 999 529 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 1 000 101 111 000 100 110 110 099 999 529(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 111 000 100 110 110 099 999 529(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 111 000 100 110 110 099 999 529 : 2 = 500 050 555 500 050 055 055 049 999 764 + 1;
  • 500 050 555 500 050 055 055 049 999 764 : 2 = 250 025 277 750 025 027 527 524 999 882 + 0;
  • 250 025 277 750 025 027 527 524 999 882 : 2 = 125 012 638 875 012 513 763 762 499 941 + 0;
  • 125 012 638 875 012 513 763 762 499 941 : 2 = 62 506 319 437 506 256 881 881 249 970 + 1;
  • 62 506 319 437 506 256 881 881 249 970 : 2 = 31 253 159 718 753 128 440 940 624 985 + 0;
  • 31 253 159 718 753 128 440 940 624 985 : 2 = 15 626 579 859 376 564 220 470 312 492 + 1;
  • 15 626 579 859 376 564 220 470 312 492 : 2 = 7 813 289 929 688 282 110 235 156 246 + 0;
  • 7 813 289 929 688 282 110 235 156 246 : 2 = 3 906 644 964 844 141 055 117 578 123 + 0;
  • 3 906 644 964 844 141 055 117 578 123 : 2 = 1 953 322 482 422 070 527 558 789 061 + 1;
  • 1 953 322 482 422 070 527 558 789 061 : 2 = 976 661 241 211 035 263 779 394 530 + 1;
  • 976 661 241 211 035 263 779 394 530 : 2 = 488 330 620 605 517 631 889 697 265 + 0;
  • 488 330 620 605 517 631 889 697 265 : 2 = 244 165 310 302 758 815 944 848 632 + 1;
  • 244 165 310 302 758 815 944 848 632 : 2 = 122 082 655 151 379 407 972 424 316 + 0;
  • 122 082 655 151 379 407 972 424 316 : 2 = 61 041 327 575 689 703 986 212 158 + 0;
  • 61 041 327 575 689 703 986 212 158 : 2 = 30 520 663 787 844 851 993 106 079 + 0;
  • 30 520 663 787 844 851 993 106 079 : 2 = 15 260 331 893 922 425 996 553 039 + 1;
  • 15 260 331 893 922 425 996 553 039 : 2 = 7 630 165 946 961 212 998 276 519 + 1;
  • 7 630 165 946 961 212 998 276 519 : 2 = 3 815 082 973 480 606 499 138 259 + 1;
  • 3 815 082 973 480 606 499 138 259 : 2 = 1 907 541 486 740 303 249 569 129 + 1;
  • 1 907 541 486 740 303 249 569 129 : 2 = 953 770 743 370 151 624 784 564 + 1;
  • 953 770 743 370 151 624 784 564 : 2 = 476 885 371 685 075 812 392 282 + 0;
  • 476 885 371 685 075 812 392 282 : 2 = 238 442 685 842 537 906 196 141 + 0;
  • 238 442 685 842 537 906 196 141 : 2 = 119 221 342 921 268 953 098 070 + 1;
  • 119 221 342 921 268 953 098 070 : 2 = 59 610 671 460 634 476 549 035 + 0;
  • 59 610 671 460 634 476 549 035 : 2 = 29 805 335 730 317 238 274 517 + 1;
  • 29 805 335 730 317 238 274 517 : 2 = 14 902 667 865 158 619 137 258 + 1;
  • 14 902 667 865 158 619 137 258 : 2 = 7 451 333 932 579 309 568 629 + 0;
  • 7 451 333 932 579 309 568 629 : 2 = 3 725 666 966 289 654 784 314 + 1;
  • 3 725 666 966 289 654 784 314 : 2 = 1 862 833 483 144 827 392 157 + 0;
  • 1 862 833 483 144 827 392 157 : 2 = 931 416 741 572 413 696 078 + 1;
  • 931 416 741 572 413 696 078 : 2 = 465 708 370 786 206 848 039 + 0;
  • 465 708 370 786 206 848 039 : 2 = 232 854 185 393 103 424 019 + 1;
  • 232 854 185 393 103 424 019 : 2 = 116 427 092 696 551 712 009 + 1;
  • 116 427 092 696 551 712 009 : 2 = 58 213 546 348 275 856 004 + 1;
  • 58 213 546 348 275 856 004 : 2 = 29 106 773 174 137 928 002 + 0;
  • 29 106 773 174 137 928 002 : 2 = 14 553 386 587 068 964 001 + 0;
  • 14 553 386 587 068 964 001 : 2 = 7 276 693 293 534 482 000 + 1;
  • 7 276 693 293 534 482 000 : 2 = 3 638 346 646 767 241 000 + 0;
  • 3 638 346 646 767 241 000 : 2 = 1 819 173 323 383 620 500 + 0;
  • 1 819 173 323 383 620 500 : 2 = 909 586 661 691 810 250 + 0;
  • 909 586 661 691 810 250 : 2 = 454 793 330 845 905 125 + 0;
  • 454 793 330 845 905 125 : 2 = 227 396 665 422 952 562 + 1;
  • 227 396 665 422 952 562 : 2 = 113 698 332 711 476 281 + 0;
  • 113 698 332 711 476 281 : 2 = 56 849 166 355 738 140 + 1;
  • 56 849 166 355 738 140 : 2 = 28 424 583 177 869 070 + 0;
  • 28 424 583 177 869 070 : 2 = 14 212 291 588 934 535 + 0;
  • 14 212 291 588 934 535 : 2 = 7 106 145 794 467 267 + 1;
  • 7 106 145 794 467 267 : 2 = 3 553 072 897 233 633 + 1;
  • 3 553 072 897 233 633 : 2 = 1 776 536 448 616 816 + 1;
  • 1 776 536 448 616 816 : 2 = 888 268 224 308 408 + 0;
  • 888 268 224 308 408 : 2 = 444 134 112 154 204 + 0;
  • 444 134 112 154 204 : 2 = 222 067 056 077 102 + 0;
  • 222 067 056 077 102 : 2 = 111 033 528 038 551 + 0;
  • 111 033 528 038 551 : 2 = 55 516 764 019 275 + 1;
  • 55 516 764 019 275 : 2 = 27 758 382 009 637 + 1;
  • 27 758 382 009 637 : 2 = 13 879 191 004 818 + 1;
  • 13 879 191 004 818 : 2 = 6 939 595 502 409 + 0;
  • 6 939 595 502 409 : 2 = 3 469 797 751 204 + 1;
  • 3 469 797 751 204 : 2 = 1 734 898 875 602 + 0;
  • 1 734 898 875 602 : 2 = 867 449 437 801 + 0;
  • 867 449 437 801 : 2 = 433 724 718 900 + 1;
  • 433 724 718 900 : 2 = 216 862 359 450 + 0;
  • 216 862 359 450 : 2 = 108 431 179 725 + 0;
  • 108 431 179 725 : 2 = 54 215 589 862 + 1;
  • 54 215 589 862 : 2 = 27 107 794 931 + 0;
  • 27 107 794 931 : 2 = 13 553 897 465 + 1;
  • 13 553 897 465 : 2 = 6 776 948 732 + 1;
  • 6 776 948 732 : 2 = 3 388 474 366 + 0;
  • 3 388 474 366 : 2 = 1 694 237 183 + 0;
  • 1 694 237 183 : 2 = 847 118 591 + 1;
  • 847 118 591 : 2 = 423 559 295 + 1;
  • 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 111 000 100 110 110 099 999 529(10) =


1100 1001 1111 1000 0000 0011 1111 1110 0110 1001 0010 1110 0001 1100 1010 0001 0011 1010 1011 0100 1111 1000 1011 0010 1001(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 111 000 100 110 110 099 999 529(10) =


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


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


1,1001 0011 1111 0000 0000 0111 1111 1100 1101 0010 0101 1100 0011 1001 0100 0010 0111 0101 0110 1001 1111 0001 0110 0101 001(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 1100 1101 0010 0101 1100 0011 1001 0100 0010 0111 0101 0110 1001 1111 0001 0110 0101 001


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


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 111 000 100 110 110 099 999 529 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