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

Scriere 1 000 010 111 111 099 999 999 999 998 621(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 010 111 111 099 999 999 999 998 621(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 010 111 111 099 999 999 999 998 621 : 2 = 500 005 055 555 549 999 999 999 999 310 + 1;
  • 500 005 055 555 549 999 999 999 999 310 : 2 = 250 002 527 777 774 999 999 999 999 655 + 0;
  • 250 002 527 777 774 999 999 999 999 655 : 2 = 125 001 263 888 887 499 999 999 999 827 + 1;
  • 125 001 263 888 887 499 999 999 999 827 : 2 = 62 500 631 944 443 749 999 999 999 913 + 1;
  • 62 500 631 944 443 749 999 999 999 913 : 2 = 31 250 315 972 221 874 999 999 999 956 + 1;
  • 31 250 315 972 221 874 999 999 999 956 : 2 = 15 625 157 986 110 937 499 999 999 978 + 0;
  • 15 625 157 986 110 937 499 999 999 978 : 2 = 7 812 578 993 055 468 749 999 999 989 + 0;
  • 7 812 578 993 055 468 749 999 999 989 : 2 = 3 906 289 496 527 734 374 999 999 994 + 1;
  • 3 906 289 496 527 734 374 999 999 994 : 2 = 1 953 144 748 263 867 187 499 999 997 + 0;
  • 1 953 144 748 263 867 187 499 999 997 : 2 = 976 572 374 131 933 593 749 999 998 + 1;
  • 976 572 374 131 933 593 749 999 998 : 2 = 488 286 187 065 966 796 874 999 999 + 0;
  • 488 286 187 065 966 796 874 999 999 : 2 = 244 143 093 532 983 398 437 499 999 + 1;
  • 244 143 093 532 983 398 437 499 999 : 2 = 122 071 546 766 491 699 218 749 999 + 1;
  • 122 071 546 766 491 699 218 749 999 : 2 = 61 035 773 383 245 849 609 374 999 + 1;
  • 61 035 773 383 245 849 609 374 999 : 2 = 30 517 886 691 622 924 804 687 499 + 1;
  • 30 517 886 691 622 924 804 687 499 : 2 = 15 258 943 345 811 462 402 343 749 + 1;
  • 15 258 943 345 811 462 402 343 749 : 2 = 7 629 471 672 905 731 201 171 874 + 1;
  • 7 629 471 672 905 731 201 171 874 : 2 = 3 814 735 836 452 865 600 585 937 + 0;
  • 3 814 735 836 452 865 600 585 937 : 2 = 1 907 367 918 226 432 800 292 968 + 1;
  • 1 907 367 918 226 432 800 292 968 : 2 = 953 683 959 113 216 400 146 484 + 0;
  • 953 683 959 113 216 400 146 484 : 2 = 476 841 979 556 608 200 073 242 + 0;
  • 476 841 979 556 608 200 073 242 : 2 = 238 420 989 778 304 100 036 621 + 0;
  • 238 420 989 778 304 100 036 621 : 2 = 119 210 494 889 152 050 018 310 + 1;
  • 119 210 494 889 152 050 018 310 : 2 = 59 605 247 444 576 025 009 155 + 0;
  • 59 605 247 444 576 025 009 155 : 2 = 29 802 623 722 288 012 504 577 + 1;
  • 29 802 623 722 288 012 504 577 : 2 = 14 901 311 861 144 006 252 288 + 1;
  • 14 901 311 861 144 006 252 288 : 2 = 7 450 655 930 572 003 126 144 + 0;
  • 7 450 655 930 572 003 126 144 : 2 = 3 725 327 965 286 001 563 072 + 0;
  • 3 725 327 965 286 001 563 072 : 2 = 1 862 663 982 643 000 781 536 + 0;
  • 1 862 663 982 643 000 781 536 : 2 = 931 331 991 321 500 390 768 + 0;
  • 931 331 991 321 500 390 768 : 2 = 465 665 995 660 750 195 384 + 0;
  • 465 665 995 660 750 195 384 : 2 = 232 832 997 830 375 097 692 + 0;
  • 232 832 997 830 375 097 692 : 2 = 116 416 498 915 187 548 846 + 0;
  • 116 416 498 915 187 548 846 : 2 = 58 208 249 457 593 774 423 + 0;
  • 58 208 249 457 593 774 423 : 2 = 29 104 124 728 796 887 211 + 1;
  • 29 104 124 728 796 887 211 : 2 = 14 552 062 364 398 443 605 + 1;
  • 14 552 062 364 398 443 605 : 2 = 7 276 031 182 199 221 802 + 1;
  • 7 276 031 182 199 221 802 : 2 = 3 638 015 591 099 610 901 + 0;
  • 3 638 015 591 099 610 901 : 2 = 1 819 007 795 549 805 450 + 1;
  • 1 819 007 795 549 805 450 : 2 = 909 503 897 774 902 725 + 0;
  • 909 503 897 774 902 725 : 2 = 454 751 948 887 451 362 + 1;
  • 454 751 948 887 451 362 : 2 = 227 375 974 443 725 681 + 0;
  • 227 375 974 443 725 681 : 2 = 113 687 987 221 862 840 + 1;
  • 113 687 987 221 862 840 : 2 = 56 843 993 610 931 420 + 0;
  • 56 843 993 610 931 420 : 2 = 28 421 996 805 465 710 + 0;
  • 28 421 996 805 465 710 : 2 = 14 210 998 402 732 855 + 0;
  • 14 210 998 402 732 855 : 2 = 7 105 499 201 366 427 + 1;
  • 7 105 499 201 366 427 : 2 = 3 552 749 600 683 213 + 1;
  • 3 552 749 600 683 213 : 2 = 1 776 374 800 341 606 + 1;
  • 1 776 374 800 341 606 : 2 = 888 187 400 170 803 + 0;
  • 888 187 400 170 803 : 2 = 444 093 700 085 401 + 1;
  • 444 093 700 085 401 : 2 = 222 046 850 042 700 + 1;
  • 222 046 850 042 700 : 2 = 111 023 425 021 350 + 0;
  • 111 023 425 021 350 : 2 = 55 511 712 510 675 + 0;
  • 55 511 712 510 675 : 2 = 27 755 856 255 337 + 1;
  • 27 755 856 255 337 : 2 = 13 877 928 127 668 + 1;
  • 13 877 928 127 668 : 2 = 6 938 964 063 834 + 0;
  • 6 938 964 063 834 : 2 = 3 469 482 031 917 + 0;
  • 3 469 482 031 917 : 2 = 1 734 741 015 958 + 1;
  • 1 734 741 015 958 : 2 = 867 370 507 979 + 0;
  • 867 370 507 979 : 2 = 433 685 253 989 + 1;
  • 433 685 253 989 : 2 = 216 842 626 994 + 1;
  • 216 842 626 994 : 2 = 108 421 313 497 + 0;
  • 108 421 313 497 : 2 = 54 210 656 748 + 1;
  • 54 210 656 748 : 2 = 27 105 328 374 + 0;
  • 27 105 328 374 : 2 = 13 552 664 187 + 0;
  • 13 552 664 187 : 2 = 6 776 332 093 + 1;
  • 6 776 332 093 : 2 = 3 388 166 046 + 1;
  • 3 388 166 046 : 2 = 1 694 083 023 + 0;
  • 1 694 083 023 : 2 = 847 041 511 + 1;
  • 847 041 511 : 2 = 423 520 755 + 1;
  • 423 520 755 : 2 = 211 760 377 + 1;
  • 211 760 377 : 2 = 105 880 188 + 1;
  • 105 880 188 : 2 = 52 940 094 + 0;
  • 52 940 094 : 2 = 26 470 047 + 0;
  • 26 470 047 : 2 = 13 235 023 + 1;
  • 13 235 023 : 2 = 6 617 511 + 1;
  • 6 617 511 : 2 = 3 308 755 + 1;
  • 3 308 755 : 2 = 1 654 377 + 1;
  • 1 654 377 : 2 = 827 188 + 1;
  • 827 188 : 2 = 413 594 + 0;
  • 413 594 : 2 = 206 797 + 0;
  • 206 797 : 2 = 103 398 + 1;
  • 103 398 : 2 = 51 699 + 0;
  • 51 699 : 2 = 25 849 + 1;
  • 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 010 111 111 099 999 999 999 998 621(10) =


1100 1001 1111 0011 0100 1111 1001 1110 1100 1011 0100 1100 1101 1100 0101 0101 1100 0000 0011 0100 0101 1111 1010 1001 1101(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 010 111 111 099 999 999 999 998 621(10) =


1100 1001 1111 0011 0100 1111 1001 1110 1100 1011 0100 1100 1101 1100 0101 0101 1100 0000 0011 0100 0101 1111 1010 1001 1101(2) =


1100 1001 1111 0011 0100 1111 1001 1110 1100 1011 0100 1100 1101 1100 0101 0101 1100 0000 0011 0100 0101 1111 1010 1001 1101(2) × 20 =


1,1001 0011 1110 0110 1001 1111 0011 1101 1001 0110 1001 1001 1011 1000 1010 1011 1000 0000 0110 1000 1011 1111 0101 0011 101(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 0110 1001 1111 0011 1101 1001 0110 1001 1001 1011 1000 1010 1011 1000 0000 0110 1000 1011 1111 0101 0011 101


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 0011 0100 1111 1001 1110 1100 1011 0100 1100 1101 1100 0101 0101 1100 0000 0011 0100 0101 1111 1010 1001 1101 =


100 1001 1111 0011 0100 1111


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 0011 0100 1111


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

0 - 1110 0010 - 100 1001 1111 0011 0100 1111


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