1 111 111 011 111 111 111 111 111 110 263 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 1 111 111 011 111 111 111 111 111 110 263(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 111 111 011 111 111 111 111 111 110 263(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 111 111 011 111 111 111 111 111 110 263 : 2 = 555 555 505 555 555 555 555 555 555 131 + 1;
  • 555 555 505 555 555 555 555 555 555 131 : 2 = 277 777 752 777 777 777 777 777 777 565 + 1;
  • 277 777 752 777 777 777 777 777 777 565 : 2 = 138 888 876 388 888 888 888 888 888 782 + 1;
  • 138 888 876 388 888 888 888 888 888 782 : 2 = 69 444 438 194 444 444 444 444 444 391 + 0;
  • 69 444 438 194 444 444 444 444 444 391 : 2 = 34 722 219 097 222 222 222 222 222 195 + 1;
  • 34 722 219 097 222 222 222 222 222 195 : 2 = 17 361 109 548 611 111 111 111 111 097 + 1;
  • 17 361 109 548 611 111 111 111 111 097 : 2 = 8 680 554 774 305 555 555 555 555 548 + 1;
  • 8 680 554 774 305 555 555 555 555 548 : 2 = 4 340 277 387 152 777 777 777 777 774 + 0;
  • 4 340 277 387 152 777 777 777 777 774 : 2 = 2 170 138 693 576 388 888 888 888 887 + 0;
  • 2 170 138 693 576 388 888 888 888 887 : 2 = 1 085 069 346 788 194 444 444 444 443 + 1;
  • 1 085 069 346 788 194 444 444 444 443 : 2 = 542 534 673 394 097 222 222 222 221 + 1;
  • 542 534 673 394 097 222 222 222 221 : 2 = 271 267 336 697 048 611 111 111 110 + 1;
  • 271 267 336 697 048 611 111 111 110 : 2 = 135 633 668 348 524 305 555 555 555 + 0;
  • 135 633 668 348 524 305 555 555 555 : 2 = 67 816 834 174 262 152 777 777 777 + 1;
  • 67 816 834 174 262 152 777 777 777 : 2 = 33 908 417 087 131 076 388 888 888 + 1;
  • 33 908 417 087 131 076 388 888 888 : 2 = 16 954 208 543 565 538 194 444 444 + 0;
  • 16 954 208 543 565 538 194 444 444 : 2 = 8 477 104 271 782 769 097 222 222 + 0;
  • 8 477 104 271 782 769 097 222 222 : 2 = 4 238 552 135 891 384 548 611 111 + 0;
  • 4 238 552 135 891 384 548 611 111 : 2 = 2 119 276 067 945 692 274 305 555 + 1;
  • 2 119 276 067 945 692 274 305 555 : 2 = 1 059 638 033 972 846 137 152 777 + 1;
  • 1 059 638 033 972 846 137 152 777 : 2 = 529 819 016 986 423 068 576 388 + 1;
  • 529 819 016 986 423 068 576 388 : 2 = 264 909 508 493 211 534 288 194 + 0;
  • 264 909 508 493 211 534 288 194 : 2 = 132 454 754 246 605 767 144 097 + 0;
  • 132 454 754 246 605 767 144 097 : 2 = 66 227 377 123 302 883 572 048 + 1;
  • 66 227 377 123 302 883 572 048 : 2 = 33 113 688 561 651 441 786 024 + 0;
  • 33 113 688 561 651 441 786 024 : 2 = 16 556 844 280 825 720 893 012 + 0;
  • 16 556 844 280 825 720 893 012 : 2 = 8 278 422 140 412 860 446 506 + 0;
  • 8 278 422 140 412 860 446 506 : 2 = 4 139 211 070 206 430 223 253 + 0;
  • 4 139 211 070 206 430 223 253 : 2 = 2 069 605 535 103 215 111 626 + 1;
  • 2 069 605 535 103 215 111 626 : 2 = 1 034 802 767 551 607 555 813 + 0;
  • 1 034 802 767 551 607 555 813 : 2 = 517 401 383 775 803 777 906 + 1;
  • 517 401 383 775 803 777 906 : 2 = 258 700 691 887 901 888 953 + 0;
  • 258 700 691 887 901 888 953 : 2 = 129 350 345 943 950 944 476 + 1;
  • 129 350 345 943 950 944 476 : 2 = 64 675 172 971 975 472 238 + 0;
  • 64 675 172 971 975 472 238 : 2 = 32 337 586 485 987 736 119 + 0;
  • 32 337 586 485 987 736 119 : 2 = 16 168 793 242 993 868 059 + 1;
  • 16 168 793 242 993 868 059 : 2 = 8 084 396 621 496 934 029 + 1;
  • 8 084 396 621 496 934 029 : 2 = 4 042 198 310 748 467 014 + 1;
  • 4 042 198 310 748 467 014 : 2 = 2 021 099 155 374 233 507 + 0;
  • 2 021 099 155 374 233 507 : 2 = 1 010 549 577 687 116 753 + 1;
  • 1 010 549 577 687 116 753 : 2 = 505 274 788 843 558 376 + 1;
  • 505 274 788 843 558 376 : 2 = 252 637 394 421 779 188 + 0;
  • 252 637 394 421 779 188 : 2 = 126 318 697 210 889 594 + 0;
  • 126 318 697 210 889 594 : 2 = 63 159 348 605 444 797 + 0;
  • 63 159 348 605 444 797 : 2 = 31 579 674 302 722 398 + 1;
  • 31 579 674 302 722 398 : 2 = 15 789 837 151 361 199 + 0;
  • 15 789 837 151 361 199 : 2 = 7 894 918 575 680 599 + 1;
  • 7 894 918 575 680 599 : 2 = 3 947 459 287 840 299 + 1;
  • 3 947 459 287 840 299 : 2 = 1 973 729 643 920 149 + 1;
  • 1 973 729 643 920 149 : 2 = 986 864 821 960 074 + 1;
  • 986 864 821 960 074 : 2 = 493 432 410 980 037 + 0;
  • 493 432 410 980 037 : 2 = 246 716 205 490 018 + 1;
  • 246 716 205 490 018 : 2 = 123 358 102 745 009 + 0;
  • 123 358 102 745 009 : 2 = 61 679 051 372 504 + 1;
  • 61 679 051 372 504 : 2 = 30 839 525 686 252 + 0;
  • 30 839 525 686 252 : 2 = 15 419 762 843 126 + 0;
  • 15 419 762 843 126 : 2 = 7 709 881 421 563 + 0;
  • 7 709 881 421 563 : 2 = 3 854 940 710 781 + 1;
  • 3 854 940 710 781 : 2 = 1 927 470 355 390 + 1;
  • 1 927 470 355 390 : 2 = 963 735 177 695 + 0;
  • 963 735 177 695 : 2 = 481 867 588 847 + 1;
  • 481 867 588 847 : 2 = 240 933 794 423 + 1;
  • 240 933 794 423 : 2 = 120 466 897 211 + 1;
  • 120 466 897 211 : 2 = 60 233 448 605 + 1;
  • 60 233 448 605 : 2 = 30 116 724 302 + 1;
  • 30 116 724 302 : 2 = 15 058 362 151 + 0;
  • 15 058 362 151 : 2 = 7 529 181 075 + 1;
  • 7 529 181 075 : 2 = 3 764 590 537 + 1;
  • 3 764 590 537 : 2 = 1 882 295 268 + 1;
  • 1 882 295 268 : 2 = 941 147 634 + 0;
  • 941 147 634 : 2 = 470 573 817 + 0;
  • 470 573 817 : 2 = 235 286 908 + 1;
  • 235 286 908 : 2 = 117 643 454 + 0;
  • 117 643 454 : 2 = 58 821 727 + 0;
  • 58 821 727 : 2 = 29 410 863 + 1;
  • 29 410 863 : 2 = 14 705 431 + 1;
  • 14 705 431 : 2 = 7 352 715 + 1;
  • 7 352 715 : 2 = 3 676 357 + 1;
  • 3 676 357 : 2 = 1 838 178 + 1;
  • 1 838 178 : 2 = 919 089 + 0;
  • 919 089 : 2 = 459 544 + 1;
  • 459 544 : 2 = 229 772 + 0;
  • 229 772 : 2 = 114 886 + 0;
  • 114 886 : 2 = 57 443 + 0;
  • 57 443 : 2 = 28 721 + 1;
  • 28 721 : 2 = 14 360 + 1;
  • 14 360 : 2 = 7 180 + 0;
  • 7 180 : 2 = 3 590 + 0;
  • 3 590 : 2 = 1 795 + 0;
  • 1 795 : 2 = 897 + 1;
  • 897 : 2 = 448 + 1;
  • 448 : 2 = 224 + 0;
  • 224 : 2 = 112 + 0;
  • 112 : 2 = 56 + 0;
  • 56 : 2 = 28 + 0;
  • 28 : 2 = 14 + 0;
  • 14 : 2 = 7 + 0;
  • 7 : 2 = 3 + 1;
  • 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 111 111 011 111 111 111 111 111 110 263(10) =


1110 0000 0110 0011 0001 0111 1100 1001 1101 1111 0110 0010 1011 1101 0001 1011 1001 0101 0000 1001 1100 0110 1110 0111 0111(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 111 111 011 111 111 111 111 111 110 263(10) =


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


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


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


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. 110 0000 0110 0011 0001 0111 1100 1001 1101 1111 0110 0010 1011 1101 0001 1011 1001 0101 0000 1001 1100 0110 1110 0111 0111 =


110 0000 0110 0011 0001 0111


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) =
110 0000 0110 0011 0001 0111


Numărul zecimal 1 111 111 011 111 111 111 111 111 110 263 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1110 0010 - 110 0000 0110 0011 0001 0111


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