0,000 000 000 000 000 176 190 1 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 0,000 000 000 000 000 176 190 1(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
0,000 000 000 000 000 176 190 1(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. Întâi convertește în binar (în baza 2) partea întreagă: 0.
Î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;
  • 0 : 2 = 0 + 0;

2. Construiește reprezentarea în baza 2 a părții întregi a numărului.

Ia fiecare rest al împărțirilor începând din partea de jos a listei construite mai sus.

0(10) =


0(2)


3. Convertește în binar (baza 2) partea fracționară: 0,000 000 000 000 000 176 190 1.

Înmulțește numărul în mod repetat cu 2.


Notăm mai jos fiecare parte întreagă a înmulțirilor.


Ne oprim când obținem o parte fracționară egală cu zero.


  • #) înmulțire = întreg + fracționar;
  • 1) 0,000 000 000 000 000 176 190 1 × 2 = 0 + 0,000 000 000 000 000 352 380 2;
  • 2) 0,000 000 000 000 000 352 380 2 × 2 = 0 + 0,000 000 000 000 000 704 760 4;
  • 3) 0,000 000 000 000 000 704 760 4 × 2 = 0 + 0,000 000 000 000 001 409 520 8;
  • 4) 0,000 000 000 000 001 409 520 8 × 2 = 0 + 0,000 000 000 000 002 819 041 6;
  • 5) 0,000 000 000 000 002 819 041 6 × 2 = 0 + 0,000 000 000 000 005 638 083 2;
  • 6) 0,000 000 000 000 005 638 083 2 × 2 = 0 + 0,000 000 000 000 011 276 166 4;
  • 7) 0,000 000 000 000 011 276 166 4 × 2 = 0 + 0,000 000 000 000 022 552 332 8;
  • 8) 0,000 000 000 000 022 552 332 8 × 2 = 0 + 0,000 000 000 000 045 104 665 6;
  • 9) 0,000 000 000 000 045 104 665 6 × 2 = 0 + 0,000 000 000 000 090 209 331 2;
  • 10) 0,000 000 000 000 090 209 331 2 × 2 = 0 + 0,000 000 000 000 180 418 662 4;
  • 11) 0,000 000 000 000 180 418 662 4 × 2 = 0 + 0,000 000 000 000 360 837 324 8;
  • 12) 0,000 000 000 000 360 837 324 8 × 2 = 0 + 0,000 000 000 000 721 674 649 6;
  • 13) 0,000 000 000 000 721 674 649 6 × 2 = 0 + 0,000 000 000 001 443 349 299 2;
  • 14) 0,000 000 000 001 443 349 299 2 × 2 = 0 + 0,000 000 000 002 886 698 598 4;
  • 15) 0,000 000 000 002 886 698 598 4 × 2 = 0 + 0,000 000 000 005 773 397 196 8;
  • 16) 0,000 000 000 005 773 397 196 8 × 2 = 0 + 0,000 000 000 011 546 794 393 6;
  • 17) 0,000 000 000 011 546 794 393 6 × 2 = 0 + 0,000 000 000 023 093 588 787 2;
  • 18) 0,000 000 000 023 093 588 787 2 × 2 = 0 + 0,000 000 000 046 187 177 574 4;
  • 19) 0,000 000 000 046 187 177 574 4 × 2 = 0 + 0,000 000 000 092 374 355 148 8;
  • 20) 0,000 000 000 092 374 355 148 8 × 2 = 0 + 0,000 000 000 184 748 710 297 6;
  • 21) 0,000 000 000 184 748 710 297 6 × 2 = 0 + 0,000 000 000 369 497 420 595 2;
  • 22) 0,000 000 000 369 497 420 595 2 × 2 = 0 + 0,000 000 000 738 994 841 190 4;
  • 23) 0,000 000 000 738 994 841 190 4 × 2 = 0 + 0,000 000 001 477 989 682 380 8;
  • 24) 0,000 000 001 477 989 682 380 8 × 2 = 0 + 0,000 000 002 955 979 364 761 6;
  • 25) 0,000 000 002 955 979 364 761 6 × 2 = 0 + 0,000 000 005 911 958 729 523 2;
  • 26) 0,000 000 005 911 958 729 523 2 × 2 = 0 + 0,000 000 011 823 917 459 046 4;
  • 27) 0,000 000 011 823 917 459 046 4 × 2 = 0 + 0,000 000 023 647 834 918 092 8;
  • 28) 0,000 000 023 647 834 918 092 8 × 2 = 0 + 0,000 000 047 295 669 836 185 6;
  • 29) 0,000 000 047 295 669 836 185 6 × 2 = 0 + 0,000 000 094 591 339 672 371 2;
  • 30) 0,000 000 094 591 339 672 371 2 × 2 = 0 + 0,000 000 189 182 679 344 742 4;
  • 31) 0,000 000 189 182 679 344 742 4 × 2 = 0 + 0,000 000 378 365 358 689 484 8;
  • 32) 0,000 000 378 365 358 689 484 8 × 2 = 0 + 0,000 000 756 730 717 378 969 6;
  • 33) 0,000 000 756 730 717 378 969 6 × 2 = 0 + 0,000 001 513 461 434 757 939 2;
  • 34) 0,000 001 513 461 434 757 939 2 × 2 = 0 + 0,000 003 026 922 869 515 878 4;
  • 35) 0,000 003 026 922 869 515 878 4 × 2 = 0 + 0,000 006 053 845 739 031 756 8;
  • 36) 0,000 006 053 845 739 031 756 8 × 2 = 0 + 0,000 012 107 691 478 063 513 6;
  • 37) 0,000 012 107 691 478 063 513 6 × 2 = 0 + 0,000 024 215 382 956 127 027 2;
  • 38) 0,000 024 215 382 956 127 027 2 × 2 = 0 + 0,000 048 430 765 912 254 054 4;
  • 39) 0,000 048 430 765 912 254 054 4 × 2 = 0 + 0,000 096 861 531 824 508 108 8;
  • 40) 0,000 096 861 531 824 508 108 8 × 2 = 0 + 0,000 193 723 063 649 016 217 6;
  • 41) 0,000 193 723 063 649 016 217 6 × 2 = 0 + 0,000 387 446 127 298 032 435 2;
  • 42) 0,000 387 446 127 298 032 435 2 × 2 = 0 + 0,000 774 892 254 596 064 870 4;
  • 43) 0,000 774 892 254 596 064 870 4 × 2 = 0 + 0,001 549 784 509 192 129 740 8;
  • 44) 0,001 549 784 509 192 129 740 8 × 2 = 0 + 0,003 099 569 018 384 259 481 6;
  • 45) 0,003 099 569 018 384 259 481 6 × 2 = 0 + 0,006 199 138 036 768 518 963 2;
  • 46) 0,006 199 138 036 768 518 963 2 × 2 = 0 + 0,012 398 276 073 537 037 926 4;
  • 47) 0,012 398 276 073 537 037 926 4 × 2 = 0 + 0,024 796 552 147 074 075 852 8;
  • 48) 0,024 796 552 147 074 075 852 8 × 2 = 0 + 0,049 593 104 294 148 151 705 6;
  • 49) 0,049 593 104 294 148 151 705 6 × 2 = 0 + 0,099 186 208 588 296 303 411 2;
  • 50) 0,099 186 208 588 296 303 411 2 × 2 = 0 + 0,198 372 417 176 592 606 822 4;
  • 51) 0,198 372 417 176 592 606 822 4 × 2 = 0 + 0,396 744 834 353 185 213 644 8;
  • 52) 0,396 744 834 353 185 213 644 8 × 2 = 0 + 0,793 489 668 706 370 427 289 6;
  • 53) 0,793 489 668 706 370 427 289 6 × 2 = 1 + 0,586 979 337 412 740 854 579 2;
  • 54) 0,586 979 337 412 740 854 579 2 × 2 = 1 + 0,173 958 674 825 481 709 158 4;
  • 55) 0,173 958 674 825 481 709 158 4 × 2 = 0 + 0,347 917 349 650 963 418 316 8;
  • 56) 0,347 917 349 650 963 418 316 8 × 2 = 0 + 0,695 834 699 301 926 836 633 6;
  • 57) 0,695 834 699 301 926 836 633 6 × 2 = 1 + 0,391 669 398 603 853 673 267 2;
  • 58) 0,391 669 398 603 853 673 267 2 × 2 = 0 + 0,783 338 797 207 707 346 534 4;
  • 59) 0,783 338 797 207 707 346 534 4 × 2 = 1 + 0,566 677 594 415 414 693 068 8;
  • 60) 0,566 677 594 415 414 693 068 8 × 2 = 1 + 0,133 355 188 830 829 386 137 6;
  • 61) 0,133 355 188 830 829 386 137 6 × 2 = 0 + 0,266 710 377 661 658 772 275 2;
  • 62) 0,266 710 377 661 658 772 275 2 × 2 = 0 + 0,533 420 755 323 317 544 550 4;
  • 63) 0,533 420 755 323 317 544 550 4 × 2 = 1 + 0,066 841 510 646 635 089 100 8;
  • 64) 0,066 841 510 646 635 089 100 8 × 2 = 0 + 0,133 683 021 293 270 178 201 6;
  • 65) 0,133 683 021 293 270 178 201 6 × 2 = 0 + 0,267 366 042 586 540 356 403 2;
  • 66) 0,267 366 042 586 540 356 403 2 × 2 = 0 + 0,534 732 085 173 080 712 806 4;
  • 67) 0,534 732 085 173 080 712 806 4 × 2 = 1 + 0,069 464 170 346 161 425 612 8;
  • 68) 0,069 464 170 346 161 425 612 8 × 2 = 0 + 0,138 928 340 692 322 851 225 6;
  • 69) 0,138 928 340 692 322 851 225 6 × 2 = 0 + 0,277 856 681 384 645 702 451 2;
  • 70) 0,277 856 681 384 645 702 451 2 × 2 = 0 + 0,555 713 362 769 291 404 902 4;
  • 71) 0,555 713 362 769 291 404 902 4 × 2 = 1 + 0,111 426 725 538 582 809 804 8;
  • 72) 0,111 426 725 538 582 809 804 8 × 2 = 0 + 0,222 853 451 077 165 619 609 6;
  • 73) 0,222 853 451 077 165 619 609 6 × 2 = 0 + 0,445 706 902 154 331 239 219 2;
  • 74) 0,445 706 902 154 331 239 219 2 × 2 = 0 + 0,891 413 804 308 662 478 438 4;
  • 75) 0,891 413 804 308 662 478 438 4 × 2 = 1 + 0,782 827 608 617 324 956 876 8;
  • 76) 0,782 827 608 617 324 956 876 8 × 2 = 1 + 0,565 655 217 234 649 913 753 6;

Nicio parte fracționară egală cu zero n-a fost obținută. Însă am efectuat un număr suficient de iterații (peste limita de Mantisă) și am obținut măcar o parte întreagă diferită de zero => STOP (Pierdem din precizie - numărul convertit pe care îl vom obține în final va fi doar o foarte bună aproximare a celui inițial).


4. Construiește reprezentarea în baza 2 a părții fracționare a numărului.

Ia fiecare parte întreagă a rezultatelor înmulțirilor, începând din partea de sus a listei construite:


0,000 000 000 000 000 176 190 1(10) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100 1011 0010 0010 0010 0011(2)

5. Numărul pozitiv înainte de normalizare:

0,000 000 000 000 000 176 190 1(10) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100 1011 0010 0010 0010 0011(2)

6. Normalizează reprezentarea binară a numărului.

Mută virgula cu 53 poziții la dreapta, astfel încât partea întreagă a acestuia să aibă un singur bit, diferit de 0:


0,000 000 000 000 000 176 190 1(10) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100 1011 0010 0010 0010 0011(2) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100 1011 0010 0010 0010 0011(2) × 20 =


1,1001 0110 0100 0100 0100 011(2) × 2-53


7. 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): -53


Mantisă (nenormalizată):
1,1001 0110 0100 0100 0100 011


8. Ajustează exponentul.

Folosește reprezentarea deplasată pe 8 biți:


Exponent (ajustat) =


Exponent (neajustat) + 2(8-1) - 1 =


-53 + 2(8-1) - 1 =


(-53 + 127)(10) =


74(10)


9. 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;
  • 74 : 2 = 37 + 0;
  • 37 : 2 = 18 + 1;
  • 18 : 2 = 9 + 0;
  • 9 : 2 = 4 + 1;
  • 4 : 2 = 2 + 0;
  • 2 : 2 = 1 + 0;
  • 1 : 2 = 0 + 1;

10. 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) =


74(10) =


0100 1010(2)


11. 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, doar dacă e necesar (nu e cazul aici).


Mantisă (normalizată) =


1. 100 1011 0010 0010 0010 0011 =


100 1011 0010 0010 0010 0011


12. 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) =
0100 1010


Mantisă (23 biți) =
100 1011 0010 0010 0010 0011


Numărul zecimal 0,000 000 000 000 000 176 190 1 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 0100 1010 - 100 1011 0010 0010 0010 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