-0,000 000 000 000 000 000 159 01 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere -0,000 000 000 000 000 000 159 01(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 000 159 01(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. Începe cu versiunea pozitivă a numărului:

|-0,000 000 000 000 000 000 159 01| = 0,000 000 000 000 000 000 159 01


2. Î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;

3. 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)


4. Convertește în binar (baza 2) partea fracționară: 0,000 000 000 000 000 000 159 01.

Î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 000 159 01 × 2 = 0 + 0,000 000 000 000 000 000 318 02;
  • 2) 0,000 000 000 000 000 000 318 02 × 2 = 0 + 0,000 000 000 000 000 000 636 04;
  • 3) 0,000 000 000 000 000 000 636 04 × 2 = 0 + 0,000 000 000 000 000 001 272 08;
  • 4) 0,000 000 000 000 000 001 272 08 × 2 = 0 + 0,000 000 000 000 000 002 544 16;
  • 5) 0,000 000 000 000 000 002 544 16 × 2 = 0 + 0,000 000 000 000 000 005 088 32;
  • 6) 0,000 000 000 000 000 005 088 32 × 2 = 0 + 0,000 000 000 000 000 010 176 64;
  • 7) 0,000 000 000 000 000 010 176 64 × 2 = 0 + 0,000 000 000 000 000 020 353 28;
  • 8) 0,000 000 000 000 000 020 353 28 × 2 = 0 + 0,000 000 000 000 000 040 706 56;
  • 9) 0,000 000 000 000 000 040 706 56 × 2 = 0 + 0,000 000 000 000 000 081 413 12;
  • 10) 0,000 000 000 000 000 081 413 12 × 2 = 0 + 0,000 000 000 000 000 162 826 24;
  • 11) 0,000 000 000 000 000 162 826 24 × 2 = 0 + 0,000 000 000 000 000 325 652 48;
  • 12) 0,000 000 000 000 000 325 652 48 × 2 = 0 + 0,000 000 000 000 000 651 304 96;
  • 13) 0,000 000 000 000 000 651 304 96 × 2 = 0 + 0,000 000 000 000 001 302 609 92;
  • 14) 0,000 000 000 000 001 302 609 92 × 2 = 0 + 0,000 000 000 000 002 605 219 84;
  • 15) 0,000 000 000 000 002 605 219 84 × 2 = 0 + 0,000 000 000 000 005 210 439 68;
  • 16) 0,000 000 000 000 005 210 439 68 × 2 = 0 + 0,000 000 000 000 010 420 879 36;
  • 17) 0,000 000 000 000 010 420 879 36 × 2 = 0 + 0,000 000 000 000 020 841 758 72;
  • 18) 0,000 000 000 000 020 841 758 72 × 2 = 0 + 0,000 000 000 000 041 683 517 44;
  • 19) 0,000 000 000 000 041 683 517 44 × 2 = 0 + 0,000 000 000 000 083 367 034 88;
  • 20) 0,000 000 000 000 083 367 034 88 × 2 = 0 + 0,000 000 000 000 166 734 069 76;
  • 21) 0,000 000 000 000 166 734 069 76 × 2 = 0 + 0,000 000 000 000 333 468 139 52;
  • 22) 0,000 000 000 000 333 468 139 52 × 2 = 0 + 0,000 000 000 000 666 936 279 04;
  • 23) 0,000 000 000 000 666 936 279 04 × 2 = 0 + 0,000 000 000 001 333 872 558 08;
  • 24) 0,000 000 000 001 333 872 558 08 × 2 = 0 + 0,000 000 000 002 667 745 116 16;
  • 25) 0,000 000 000 002 667 745 116 16 × 2 = 0 + 0,000 000 000 005 335 490 232 32;
  • 26) 0,000 000 000 005 335 490 232 32 × 2 = 0 + 0,000 000 000 010 670 980 464 64;
  • 27) 0,000 000 000 010 670 980 464 64 × 2 = 0 + 0,000 000 000 021 341 960 929 28;
  • 28) 0,000 000 000 021 341 960 929 28 × 2 = 0 + 0,000 000 000 042 683 921 858 56;
  • 29) 0,000 000 000 042 683 921 858 56 × 2 = 0 + 0,000 000 000 085 367 843 717 12;
  • 30) 0,000 000 000 085 367 843 717 12 × 2 = 0 + 0,000 000 000 170 735 687 434 24;
  • 31) 0,000 000 000 170 735 687 434 24 × 2 = 0 + 0,000 000 000 341 471 374 868 48;
  • 32) 0,000 000 000 341 471 374 868 48 × 2 = 0 + 0,000 000 000 682 942 749 736 96;
  • 33) 0,000 000 000 682 942 749 736 96 × 2 = 0 + 0,000 000 001 365 885 499 473 92;
  • 34) 0,000 000 001 365 885 499 473 92 × 2 = 0 + 0,000 000 002 731 770 998 947 84;
  • 35) 0,000 000 002 731 770 998 947 84 × 2 = 0 + 0,000 000 005 463 541 997 895 68;
  • 36) 0,000 000 005 463 541 997 895 68 × 2 = 0 + 0,000 000 010 927 083 995 791 36;
  • 37) 0,000 000 010 927 083 995 791 36 × 2 = 0 + 0,000 000 021 854 167 991 582 72;
  • 38) 0,000 000 021 854 167 991 582 72 × 2 = 0 + 0,000 000 043 708 335 983 165 44;
  • 39) 0,000 000 043 708 335 983 165 44 × 2 = 0 + 0,000 000 087 416 671 966 330 88;
  • 40) 0,000 000 087 416 671 966 330 88 × 2 = 0 + 0,000 000 174 833 343 932 661 76;
  • 41) 0,000 000 174 833 343 932 661 76 × 2 = 0 + 0,000 000 349 666 687 865 323 52;
  • 42) 0,000 000 349 666 687 865 323 52 × 2 = 0 + 0,000 000 699 333 375 730 647 04;
  • 43) 0,000 000 699 333 375 730 647 04 × 2 = 0 + 0,000 001 398 666 751 461 294 08;
  • 44) 0,000 001 398 666 751 461 294 08 × 2 = 0 + 0,000 002 797 333 502 922 588 16;
  • 45) 0,000 002 797 333 502 922 588 16 × 2 = 0 + 0,000 005 594 667 005 845 176 32;
  • 46) 0,000 005 594 667 005 845 176 32 × 2 = 0 + 0,000 011 189 334 011 690 352 64;
  • 47) 0,000 011 189 334 011 690 352 64 × 2 = 0 + 0,000 022 378 668 023 380 705 28;
  • 48) 0,000 022 378 668 023 380 705 28 × 2 = 0 + 0,000 044 757 336 046 761 410 56;
  • 49) 0,000 044 757 336 046 761 410 56 × 2 = 0 + 0,000 089 514 672 093 522 821 12;
  • 50) 0,000 089 514 672 093 522 821 12 × 2 = 0 + 0,000 179 029 344 187 045 642 24;
  • 51) 0,000 179 029 344 187 045 642 24 × 2 = 0 + 0,000 358 058 688 374 091 284 48;
  • 52) 0,000 358 058 688 374 091 284 48 × 2 = 0 + 0,000 716 117 376 748 182 568 96;
  • 53) 0,000 716 117 376 748 182 568 96 × 2 = 0 + 0,001 432 234 753 496 365 137 92;
  • 54) 0,001 432 234 753 496 365 137 92 × 2 = 0 + 0,002 864 469 506 992 730 275 84;
  • 55) 0,002 864 469 506 992 730 275 84 × 2 = 0 + 0,005 728 939 013 985 460 551 68;
  • 56) 0,005 728 939 013 985 460 551 68 × 2 = 0 + 0,011 457 878 027 970 921 103 36;
  • 57) 0,011 457 878 027 970 921 103 36 × 2 = 0 + 0,022 915 756 055 941 842 206 72;
  • 58) 0,022 915 756 055 941 842 206 72 × 2 = 0 + 0,045 831 512 111 883 684 413 44;
  • 59) 0,045 831 512 111 883 684 413 44 × 2 = 0 + 0,091 663 024 223 767 368 826 88;
  • 60) 0,091 663 024 223 767 368 826 88 × 2 = 0 + 0,183 326 048 447 534 737 653 76;
  • 61) 0,183 326 048 447 534 737 653 76 × 2 = 0 + 0,366 652 096 895 069 475 307 52;
  • 62) 0,366 652 096 895 069 475 307 52 × 2 = 0 + 0,733 304 193 790 138 950 615 04;
  • 63) 0,733 304 193 790 138 950 615 04 × 2 = 1 + 0,466 608 387 580 277 901 230 08;
  • 64) 0,466 608 387 580 277 901 230 08 × 2 = 0 + 0,933 216 775 160 555 802 460 16;
  • 65) 0,933 216 775 160 555 802 460 16 × 2 = 1 + 0,866 433 550 321 111 604 920 32;
  • 66) 0,866 433 550 321 111 604 920 32 × 2 = 1 + 0,732 867 100 642 223 209 840 64;
  • 67) 0,732 867 100 642 223 209 840 64 × 2 = 1 + 0,465 734 201 284 446 419 681 28;
  • 68) 0,465 734 201 284 446 419 681 28 × 2 = 0 + 0,931 468 402 568 892 839 362 56;
  • 69) 0,931 468 402 568 892 839 362 56 × 2 = 1 + 0,862 936 805 137 785 678 725 12;
  • 70) 0,862 936 805 137 785 678 725 12 × 2 = 1 + 0,725 873 610 275 571 357 450 24;
  • 71) 0,725 873 610 275 571 357 450 24 × 2 = 1 + 0,451 747 220 551 142 714 900 48;
  • 72) 0,451 747 220 551 142 714 900 48 × 2 = 0 + 0,903 494 441 102 285 429 800 96;
  • 73) 0,903 494 441 102 285 429 800 96 × 2 = 1 + 0,806 988 882 204 570 859 601 92;
  • 74) 0,806 988 882 204 570 859 601 92 × 2 = 1 + 0,613 977 764 409 141 719 203 84;
  • 75) 0,613 977 764 409 141 719 203 84 × 2 = 1 + 0,227 955 528 818 283 438 407 68;
  • 76) 0,227 955 528 818 283 438 407 68 × 2 = 0 + 0,455 911 057 636 566 876 815 36;
  • 77) 0,455 911 057 636 566 876 815 36 × 2 = 0 + 0,911 822 115 273 133 753 630 72;
  • 78) 0,911 822 115 273 133 753 630 72 × 2 = 1 + 0,823 644 230 546 267 507 261 44;
  • 79) 0,823 644 230 546 267 507 261 44 × 2 = 1 + 0,647 288 461 092 535 014 522 88;
  • 80) 0,647 288 461 092 535 014 522 88 × 2 = 1 + 0,294 576 922 185 070 029 045 76;
  • 81) 0,294 576 922 185 070 029 045 76 × 2 = 0 + 0,589 153 844 370 140 058 091 52;
  • 82) 0,589 153 844 370 140 058 091 52 × 2 = 1 + 0,178 307 688 740 280 116 183 04;
  • 83) 0,178 307 688 740 280 116 183 04 × 2 = 0 + 0,356 615 377 480 560 232 366 08;
  • 84) 0,356 615 377 480 560 232 366 08 × 2 = 0 + 0,713 230 754 961 120 464 732 16;
  • 85) 0,713 230 754 961 120 464 732 16 × 2 = 1 + 0,426 461 509 922 240 929 464 32;
  • 86) 0,426 461 509 922 240 929 464 32 × 2 = 0 + 0,852 923 019 844 481 858 928 64;

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


5. 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 000 159 01(10) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1110 1110 1110 0111 0100 10(2)

6. Numărul pozitiv înainte de normalizare:

0,000 000 000 000 000 000 159 01(10) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1110 1110 1110 0111 0100 10(2)

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

Mută virgula cu 63 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 000 159 01(10) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1110 1110 1110 0111 0100 10(2) =


0,0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 1110 1110 1110 0111 0100 10(2) × 20 =


1,0111 0111 0111 0011 1010 010(2) × 2-63


8. 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 1 (un număr negativ)


Exponent (neajustat): -63


Mantisă (nenormalizată):
1,0111 0111 0111 0011 1010 010


9. Ajustează exponentul.

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


Exponent (ajustat) =


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


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


(-63 + 127)(10) =


64(10)


10. 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;
  • 64 : 2 = 32 + 0;
  • 32 : 2 = 16 + 0;
  • 16 : 2 = 8 + 0;
  • 8 : 2 = 4 + 0;
  • 4 : 2 = 2 + 0;
  • 2 : 2 = 1 + 0;
  • 1 : 2 = 0 + 1;

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


64(10) =


0100 0000(2)


12. 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. 011 1011 1011 1001 1101 0010 =


011 1011 1011 1001 1101 0010


13. 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) =
1 (un număr negativ)


Exponent (8 biți) =
0100 0000


Mantisă (23 biți) =
011 1011 1011 1001 1101 0010


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

1 - 0100 0000 - 011 1011 1011 1001 1101 0010


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