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

Scriere 1 000 101 101 110 100 010 010 100 010 288(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 101 110 100 010 010 100 010 288(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 101 110 100 010 010 100 010 288 : 2 = 500 050 550 555 050 005 005 050 005 144 + 0;
  • 500 050 550 555 050 005 005 050 005 144 : 2 = 250 025 275 277 525 002 502 525 002 572 + 0;
  • 250 025 275 277 525 002 502 525 002 572 : 2 = 125 012 637 638 762 501 251 262 501 286 + 0;
  • 125 012 637 638 762 501 251 262 501 286 : 2 = 62 506 318 819 381 250 625 631 250 643 + 0;
  • 62 506 318 819 381 250 625 631 250 643 : 2 = 31 253 159 409 690 625 312 815 625 321 + 1;
  • 31 253 159 409 690 625 312 815 625 321 : 2 = 15 626 579 704 845 312 656 407 812 660 + 1;
  • 15 626 579 704 845 312 656 407 812 660 : 2 = 7 813 289 852 422 656 328 203 906 330 + 0;
  • 7 813 289 852 422 656 328 203 906 330 : 2 = 3 906 644 926 211 328 164 101 953 165 + 0;
  • 3 906 644 926 211 328 164 101 953 165 : 2 = 1 953 322 463 105 664 082 050 976 582 + 1;
  • 1 953 322 463 105 664 082 050 976 582 : 2 = 976 661 231 552 832 041 025 488 291 + 0;
  • 976 661 231 552 832 041 025 488 291 : 2 = 488 330 615 776 416 020 512 744 145 + 1;
  • 488 330 615 776 416 020 512 744 145 : 2 = 244 165 307 888 208 010 256 372 072 + 1;
  • 244 165 307 888 208 010 256 372 072 : 2 = 122 082 653 944 104 005 128 186 036 + 0;
  • 122 082 653 944 104 005 128 186 036 : 2 = 61 041 326 972 052 002 564 093 018 + 0;
  • 61 041 326 972 052 002 564 093 018 : 2 = 30 520 663 486 026 001 282 046 509 + 0;
  • 30 520 663 486 026 001 282 046 509 : 2 = 15 260 331 743 013 000 641 023 254 + 1;
  • 15 260 331 743 013 000 641 023 254 : 2 = 7 630 165 871 506 500 320 511 627 + 0;
  • 7 630 165 871 506 500 320 511 627 : 2 = 3 815 082 935 753 250 160 255 813 + 1;
  • 3 815 082 935 753 250 160 255 813 : 2 = 1 907 541 467 876 625 080 127 906 + 1;
  • 1 907 541 467 876 625 080 127 906 : 2 = 953 770 733 938 312 540 063 953 + 0;
  • 953 770 733 938 312 540 063 953 : 2 = 476 885 366 969 156 270 031 976 + 1;
  • 476 885 366 969 156 270 031 976 : 2 = 238 442 683 484 578 135 015 988 + 0;
  • 238 442 683 484 578 135 015 988 : 2 = 119 221 341 742 289 067 507 994 + 0;
  • 119 221 341 742 289 067 507 994 : 2 = 59 610 670 871 144 533 753 997 + 0;
  • 59 610 670 871 144 533 753 997 : 2 = 29 805 335 435 572 266 876 998 + 1;
  • 29 805 335 435 572 266 876 998 : 2 = 14 902 667 717 786 133 438 499 + 0;
  • 14 902 667 717 786 133 438 499 : 2 = 7 451 333 858 893 066 719 249 + 1;
  • 7 451 333 858 893 066 719 249 : 2 = 3 725 666 929 446 533 359 624 + 1;
  • 3 725 666 929 446 533 359 624 : 2 = 1 862 833 464 723 266 679 812 + 0;
  • 1 862 833 464 723 266 679 812 : 2 = 931 416 732 361 633 339 906 + 0;
  • 931 416 732 361 633 339 906 : 2 = 465 708 366 180 816 669 953 + 0;
  • 465 708 366 180 816 669 953 : 2 = 232 854 183 090 408 334 976 + 1;
  • 232 854 183 090 408 334 976 : 2 = 116 427 091 545 204 167 488 + 0;
  • 116 427 091 545 204 167 488 : 2 = 58 213 545 772 602 083 744 + 0;
  • 58 213 545 772 602 083 744 : 2 = 29 106 772 886 301 041 872 + 0;
  • 29 106 772 886 301 041 872 : 2 = 14 553 386 443 150 520 936 + 0;
  • 14 553 386 443 150 520 936 : 2 = 7 276 693 221 575 260 468 + 0;
  • 7 276 693 221 575 260 468 : 2 = 3 638 346 610 787 630 234 + 0;
  • 3 638 346 610 787 630 234 : 2 = 1 819 173 305 393 815 117 + 0;
  • 1 819 173 305 393 815 117 : 2 = 909 586 652 696 907 558 + 1;
  • 909 586 652 696 907 558 : 2 = 454 793 326 348 453 779 + 0;
  • 454 793 326 348 453 779 : 2 = 227 396 663 174 226 889 + 1;
  • 227 396 663 174 226 889 : 2 = 113 698 331 587 113 444 + 1;
  • 113 698 331 587 113 444 : 2 = 56 849 165 793 556 722 + 0;
  • 56 849 165 793 556 722 : 2 = 28 424 582 896 778 361 + 0;
  • 28 424 582 896 778 361 : 2 = 14 212 291 448 389 180 + 1;
  • 14 212 291 448 389 180 : 2 = 7 106 145 724 194 590 + 0;
  • 7 106 145 724 194 590 : 2 = 3 553 072 862 097 295 + 0;
  • 3 553 072 862 097 295 : 2 = 1 776 536 431 048 647 + 1;
  • 1 776 536 431 048 647 : 2 = 888 268 215 524 323 + 1;
  • 888 268 215 524 323 : 2 = 444 134 107 762 161 + 1;
  • 444 134 107 762 161 : 2 = 222 067 053 881 080 + 1;
  • 222 067 053 881 080 : 2 = 111 033 526 940 540 + 0;
  • 111 033 526 940 540 : 2 = 55 516 763 470 270 + 0;
  • 55 516 763 470 270 : 2 = 27 758 381 735 135 + 0;
  • 27 758 381 735 135 : 2 = 13 879 190 867 567 + 1;
  • 13 879 190 867 567 : 2 = 6 939 595 433 783 + 1;
  • 6 939 595 433 783 : 2 = 3 469 797 716 891 + 1;
  • 3 469 797 716 891 : 2 = 1 734 898 858 445 + 1;
  • 1 734 898 858 445 : 2 = 867 449 429 222 + 1;
  • 867 449 429 222 : 2 = 433 724 714 611 + 0;
  • 433 724 714 611 : 2 = 216 862 357 305 + 1;
  • 216 862 357 305 : 2 = 108 431 178 652 + 1;
  • 108 431 178 652 : 2 = 54 215 589 326 + 0;
  • 54 215 589 326 : 2 = 27 107 794 663 + 0;
  • 27 107 794 663 : 2 = 13 553 897 331 + 1;
  • 13 553 897 331 : 2 = 6 776 948 665 + 1;
  • 6 776 948 665 : 2 = 3 388 474 332 + 1;
  • 3 388 474 332 : 2 = 1 694 237 166 + 0;
  • 1 694 237 166 : 2 = 847 118 583 + 0;
  • 847 118 583 : 2 = 423 559 291 + 1;
  • 423 559 291 : 2 = 211 779 645 + 1;
  • 211 779 645 : 2 = 105 889 822 + 1;
  • 105 889 822 : 2 = 52 944 911 + 0;
  • 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 101 110 100 010 010 100 010 288(10) =


1100 1001 1111 1000 0000 0011 1101 1100 1110 0110 1111 1000 1111 0010 0110 1000 0000 1000 1101 0001 0110 1000 1101 0011 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 101 110 100 010 010 100 010 288(10) =


1100 1001 1111 1000 0000 0011 1101 1100 1110 0110 1111 1000 1111 0010 0110 1000 0000 1000 1101 0001 0110 1000 1101 0011 0000(2) =


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


1,1001 0011 1111 0000 0000 0111 1011 1001 1100 1101 1111 0001 1110 0100 1101 0000 0001 0001 1010 0010 1101 0001 1010 0110 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 1011 1001 1100 1101 1111 0001 1110 0100 1101 0000 0001 0001 1010 0010 1101 0001 1010 0110 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 1101 1100 1110 0110 1111 1000 1111 0010 0110 1000 0000 1000 1101 0001 0110 1000 1101 0011 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 101 110 100 010 010 100 010 288 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