1 000 001 100 011 100 111 100 000 109 633 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 1 000 001 100 011 100 111 100 000 109 633(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 100 011 100 111 100 000 109 633(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 100 011 100 111 100 000 109 633 : 2 = 500 000 550 005 550 055 550 000 054 816 + 1;
  • 500 000 550 005 550 055 550 000 054 816 : 2 = 250 000 275 002 775 027 775 000 027 408 + 0;
  • 250 000 275 002 775 027 775 000 027 408 : 2 = 125 000 137 501 387 513 887 500 013 704 + 0;
  • 125 000 137 501 387 513 887 500 013 704 : 2 = 62 500 068 750 693 756 943 750 006 852 + 0;
  • 62 500 068 750 693 756 943 750 006 852 : 2 = 31 250 034 375 346 878 471 875 003 426 + 0;
  • 31 250 034 375 346 878 471 875 003 426 : 2 = 15 625 017 187 673 439 235 937 501 713 + 0;
  • 15 625 017 187 673 439 235 937 501 713 : 2 = 7 812 508 593 836 719 617 968 750 856 + 1;
  • 7 812 508 593 836 719 617 968 750 856 : 2 = 3 906 254 296 918 359 808 984 375 428 + 0;
  • 3 906 254 296 918 359 808 984 375 428 : 2 = 1 953 127 148 459 179 904 492 187 714 + 0;
  • 1 953 127 148 459 179 904 492 187 714 : 2 = 976 563 574 229 589 952 246 093 857 + 0;
  • 976 563 574 229 589 952 246 093 857 : 2 = 488 281 787 114 794 976 123 046 928 + 1;
  • 488 281 787 114 794 976 123 046 928 : 2 = 244 140 893 557 397 488 061 523 464 + 0;
  • 244 140 893 557 397 488 061 523 464 : 2 = 122 070 446 778 698 744 030 761 732 + 0;
  • 122 070 446 778 698 744 030 761 732 : 2 = 61 035 223 389 349 372 015 380 866 + 0;
  • 61 035 223 389 349 372 015 380 866 : 2 = 30 517 611 694 674 686 007 690 433 + 0;
  • 30 517 611 694 674 686 007 690 433 : 2 = 15 258 805 847 337 343 003 845 216 + 1;
  • 15 258 805 847 337 343 003 845 216 : 2 = 7 629 402 923 668 671 501 922 608 + 0;
  • 7 629 402 923 668 671 501 922 608 : 2 = 3 814 701 461 834 335 750 961 304 + 0;
  • 3 814 701 461 834 335 750 961 304 : 2 = 1 907 350 730 917 167 875 480 652 + 0;
  • 1 907 350 730 917 167 875 480 652 : 2 = 953 675 365 458 583 937 740 326 + 0;
  • 953 675 365 458 583 937 740 326 : 2 = 476 837 682 729 291 968 870 163 + 0;
  • 476 837 682 729 291 968 870 163 : 2 = 238 418 841 364 645 984 435 081 + 1;
  • 238 418 841 364 645 984 435 081 : 2 = 119 209 420 682 322 992 217 540 + 1;
  • 119 209 420 682 322 992 217 540 : 2 = 59 604 710 341 161 496 108 770 + 0;
  • 59 604 710 341 161 496 108 770 : 2 = 29 802 355 170 580 748 054 385 + 0;
  • 29 802 355 170 580 748 054 385 : 2 = 14 901 177 585 290 374 027 192 + 1;
  • 14 901 177 585 290 374 027 192 : 2 = 7 450 588 792 645 187 013 596 + 0;
  • 7 450 588 792 645 187 013 596 : 2 = 3 725 294 396 322 593 506 798 + 0;
  • 3 725 294 396 322 593 506 798 : 2 = 1 862 647 198 161 296 753 399 + 0;
  • 1 862 647 198 161 296 753 399 : 2 = 931 323 599 080 648 376 699 + 1;
  • 931 323 599 080 648 376 699 : 2 = 465 661 799 540 324 188 349 + 1;
  • 465 661 799 540 324 188 349 : 2 = 232 830 899 770 162 094 174 + 1;
  • 232 830 899 770 162 094 174 : 2 = 116 415 449 885 081 047 087 + 0;
  • 116 415 449 885 081 047 087 : 2 = 58 207 724 942 540 523 543 + 1;
  • 58 207 724 942 540 523 543 : 2 = 29 103 862 471 270 261 771 + 1;
  • 29 103 862 471 270 261 771 : 2 = 14 551 931 235 635 130 885 + 1;
  • 14 551 931 235 635 130 885 : 2 = 7 275 965 617 817 565 442 + 1;
  • 7 275 965 617 817 565 442 : 2 = 3 637 982 808 908 782 721 + 0;
  • 3 637 982 808 908 782 721 : 2 = 1 818 991 404 454 391 360 + 1;
  • 1 818 991 404 454 391 360 : 2 = 909 495 702 227 195 680 + 0;
  • 909 495 702 227 195 680 : 2 = 454 747 851 113 597 840 + 0;
  • 454 747 851 113 597 840 : 2 = 227 373 925 556 798 920 + 0;
  • 227 373 925 556 798 920 : 2 = 113 686 962 778 399 460 + 0;
  • 113 686 962 778 399 460 : 2 = 56 843 481 389 199 730 + 0;
  • 56 843 481 389 199 730 : 2 = 28 421 740 694 599 865 + 0;
  • 28 421 740 694 599 865 : 2 = 14 210 870 347 299 932 + 1;
  • 14 210 870 347 299 932 : 2 = 7 105 435 173 649 966 + 0;
  • 7 105 435 173 649 966 : 2 = 3 552 717 586 824 983 + 0;
  • 3 552 717 586 824 983 : 2 = 1 776 358 793 412 491 + 1;
  • 1 776 358 793 412 491 : 2 = 888 179 396 706 245 + 1;
  • 888 179 396 706 245 : 2 = 444 089 698 353 122 + 1;
  • 444 089 698 353 122 : 2 = 222 044 849 176 561 + 0;
  • 222 044 849 176 561 : 2 = 111 022 424 588 280 + 1;
  • 111 022 424 588 280 : 2 = 55 511 212 294 140 + 0;
  • 55 511 212 294 140 : 2 = 27 755 606 147 070 + 0;
  • 27 755 606 147 070 : 2 = 13 877 803 073 535 + 0;
  • 13 877 803 073 535 : 2 = 6 938 901 536 767 + 1;
  • 6 938 901 536 767 : 2 = 3 469 450 768 383 + 1;
  • 3 469 450 768 383 : 2 = 1 734 725 384 191 + 1;
  • 1 734 725 384 191 : 2 = 867 362 692 095 + 1;
  • 867 362 692 095 : 2 = 433 681 346 047 + 1;
  • 433 681 346 047 : 2 = 216 840 673 023 + 1;
  • 216 840 673 023 : 2 = 108 420 336 511 + 1;
  • 108 420 336 511 : 2 = 54 210 168 255 + 1;
  • 54 210 168 255 : 2 = 27 105 084 127 + 1;
  • 27 105 084 127 : 2 = 13 552 542 063 + 1;
  • 13 552 542 063 : 2 = 6 776 271 031 + 1;
  • 6 776 271 031 : 2 = 3 388 135 515 + 1;
  • 3 388 135 515 : 2 = 1 694 067 757 + 1;
  • 1 694 067 757 : 2 = 847 033 878 + 1;
  • 847 033 878 : 2 = 423 516 939 + 0;
  • 423 516 939 : 2 = 211 758 469 + 1;
  • 211 758 469 : 2 = 105 879 234 + 1;
  • 105 879 234 : 2 = 52 939 617 + 0;
  • 52 939 617 : 2 = 26 469 808 + 1;
  • 26 469 808 : 2 = 13 234 904 + 0;
  • 13 234 904 : 2 = 6 617 452 + 0;
  • 6 617 452 : 2 = 3 308 726 + 0;
  • 3 308 726 : 2 = 1 654 363 + 0;
  • 1 654 363 : 2 = 827 181 + 1;
  • 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 100 011 100 111 100 000 109 633(10) =


1100 1001 1111 0010 1101 1000 0101 1011 1111 1111 1111 0001 0111 0010 0000 0101 1110 1110 0010 0110 0000 1000 0100 0100 0001(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 100 011 100 111 100 000 109 633(10) =


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


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


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


100 1001 1111 0010 1101 1000


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 1000


Numărul zecimal 1 000 001 100 011 100 111 100 000 109 633 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 1000


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