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

Scriere 1 110 011 000 010 101 101 011 011 110 378(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 110 011 000 010 101 101 011 011 110 378(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 110 011 000 010 101 101 011 011 110 378 : 2 = 555 005 500 005 050 550 505 505 555 189 + 0;
  • 555 005 500 005 050 550 505 505 555 189 : 2 = 277 502 750 002 525 275 252 752 777 594 + 1;
  • 277 502 750 002 525 275 252 752 777 594 : 2 = 138 751 375 001 262 637 626 376 388 797 + 0;
  • 138 751 375 001 262 637 626 376 388 797 : 2 = 69 375 687 500 631 318 813 188 194 398 + 1;
  • 69 375 687 500 631 318 813 188 194 398 : 2 = 34 687 843 750 315 659 406 594 097 199 + 0;
  • 34 687 843 750 315 659 406 594 097 199 : 2 = 17 343 921 875 157 829 703 297 048 599 + 1;
  • 17 343 921 875 157 829 703 297 048 599 : 2 = 8 671 960 937 578 914 851 648 524 299 + 1;
  • 8 671 960 937 578 914 851 648 524 299 : 2 = 4 335 980 468 789 457 425 824 262 149 + 1;
  • 4 335 980 468 789 457 425 824 262 149 : 2 = 2 167 990 234 394 728 712 912 131 074 + 1;
  • 2 167 990 234 394 728 712 912 131 074 : 2 = 1 083 995 117 197 364 356 456 065 537 + 0;
  • 1 083 995 117 197 364 356 456 065 537 : 2 = 541 997 558 598 682 178 228 032 768 + 1;
  • 541 997 558 598 682 178 228 032 768 : 2 = 270 998 779 299 341 089 114 016 384 + 0;
  • 270 998 779 299 341 089 114 016 384 : 2 = 135 499 389 649 670 544 557 008 192 + 0;
  • 135 499 389 649 670 544 557 008 192 : 2 = 67 749 694 824 835 272 278 504 096 + 0;
  • 67 749 694 824 835 272 278 504 096 : 2 = 33 874 847 412 417 636 139 252 048 + 0;
  • 33 874 847 412 417 636 139 252 048 : 2 = 16 937 423 706 208 818 069 626 024 + 0;
  • 16 937 423 706 208 818 069 626 024 : 2 = 8 468 711 853 104 409 034 813 012 + 0;
  • 8 468 711 853 104 409 034 813 012 : 2 = 4 234 355 926 552 204 517 406 506 + 0;
  • 4 234 355 926 552 204 517 406 506 : 2 = 2 117 177 963 276 102 258 703 253 + 0;
  • 2 117 177 963 276 102 258 703 253 : 2 = 1 058 588 981 638 051 129 351 626 + 1;
  • 1 058 588 981 638 051 129 351 626 : 2 = 529 294 490 819 025 564 675 813 + 0;
  • 529 294 490 819 025 564 675 813 : 2 = 264 647 245 409 512 782 337 906 + 1;
  • 264 647 245 409 512 782 337 906 : 2 = 132 323 622 704 756 391 168 953 + 0;
  • 132 323 622 704 756 391 168 953 : 2 = 66 161 811 352 378 195 584 476 + 1;
  • 66 161 811 352 378 195 584 476 : 2 = 33 080 905 676 189 097 792 238 + 0;
  • 33 080 905 676 189 097 792 238 : 2 = 16 540 452 838 094 548 896 119 + 0;
  • 16 540 452 838 094 548 896 119 : 2 = 8 270 226 419 047 274 448 059 + 1;
  • 8 270 226 419 047 274 448 059 : 2 = 4 135 113 209 523 637 224 029 + 1;
  • 4 135 113 209 523 637 224 029 : 2 = 2 067 556 604 761 818 612 014 + 1;
  • 2 067 556 604 761 818 612 014 : 2 = 1 033 778 302 380 909 306 007 + 0;
  • 1 033 778 302 380 909 306 007 : 2 = 516 889 151 190 454 653 003 + 1;
  • 516 889 151 190 454 653 003 : 2 = 258 444 575 595 227 326 501 + 1;
  • 258 444 575 595 227 326 501 : 2 = 129 222 287 797 613 663 250 + 1;
  • 129 222 287 797 613 663 250 : 2 = 64 611 143 898 806 831 625 + 0;
  • 64 611 143 898 806 831 625 : 2 = 32 305 571 949 403 415 812 + 1;
  • 32 305 571 949 403 415 812 : 2 = 16 152 785 974 701 707 906 + 0;
  • 16 152 785 974 701 707 906 : 2 = 8 076 392 987 350 853 953 + 0;
  • 8 076 392 987 350 853 953 : 2 = 4 038 196 493 675 426 976 + 1;
  • 4 038 196 493 675 426 976 : 2 = 2 019 098 246 837 713 488 + 0;
  • 2 019 098 246 837 713 488 : 2 = 1 009 549 123 418 856 744 + 0;
  • 1 009 549 123 418 856 744 : 2 = 504 774 561 709 428 372 + 0;
  • 504 774 561 709 428 372 : 2 = 252 387 280 854 714 186 + 0;
  • 252 387 280 854 714 186 : 2 = 126 193 640 427 357 093 + 0;
  • 126 193 640 427 357 093 : 2 = 63 096 820 213 678 546 + 1;
  • 63 096 820 213 678 546 : 2 = 31 548 410 106 839 273 + 0;
  • 31 548 410 106 839 273 : 2 = 15 774 205 053 419 636 + 1;
  • 15 774 205 053 419 636 : 2 = 7 887 102 526 709 818 + 0;
  • 7 887 102 526 709 818 : 2 = 3 943 551 263 354 909 + 0;
  • 3 943 551 263 354 909 : 2 = 1 971 775 631 677 454 + 1;
  • 1 971 775 631 677 454 : 2 = 985 887 815 838 727 + 0;
  • 985 887 815 838 727 : 2 = 492 943 907 919 363 + 1;
  • 492 943 907 919 363 : 2 = 246 471 953 959 681 + 1;
  • 246 471 953 959 681 : 2 = 123 235 976 979 840 + 1;
  • 123 235 976 979 840 : 2 = 61 617 988 489 920 + 0;
  • 61 617 988 489 920 : 2 = 30 808 994 244 960 + 0;
  • 30 808 994 244 960 : 2 = 15 404 497 122 480 + 0;
  • 15 404 497 122 480 : 2 = 7 702 248 561 240 + 0;
  • 7 702 248 561 240 : 2 = 3 851 124 280 620 + 0;
  • 3 851 124 280 620 : 2 = 1 925 562 140 310 + 0;
  • 1 925 562 140 310 : 2 = 962 781 070 155 + 0;
  • 962 781 070 155 : 2 = 481 390 535 077 + 1;
  • 481 390 535 077 : 2 = 240 695 267 538 + 1;
  • 240 695 267 538 : 2 = 120 347 633 769 + 0;
  • 120 347 633 769 : 2 = 60 173 816 884 + 1;
  • 60 173 816 884 : 2 = 30 086 908 442 + 0;
  • 30 086 908 442 : 2 = 15 043 454 221 + 0;
  • 15 043 454 221 : 2 = 7 521 727 110 + 1;
  • 7 521 727 110 : 2 = 3 760 863 555 + 0;
  • 3 760 863 555 : 2 = 1 880 431 777 + 1;
  • 1 880 431 777 : 2 = 940 215 888 + 1;
  • 940 215 888 : 2 = 470 107 944 + 0;
  • 470 107 944 : 2 = 235 053 972 + 0;
  • 235 053 972 : 2 = 117 526 986 + 0;
  • 117 526 986 : 2 = 58 763 493 + 0;
  • 58 763 493 : 2 = 29 381 746 + 1;
  • 29 381 746 : 2 = 14 690 873 + 0;
  • 14 690 873 : 2 = 7 345 436 + 1;
  • 7 345 436 : 2 = 3 672 718 + 0;
  • 3 672 718 : 2 = 1 836 359 + 0;
  • 1 836 359 : 2 = 918 179 + 1;
  • 918 179 : 2 = 459 089 + 1;
  • 459 089 : 2 = 229 544 + 1;
  • 229 544 : 2 = 114 772 + 0;
  • 114 772 : 2 = 57 386 + 0;
  • 57 386 : 2 = 28 693 + 0;
  • 28 693 : 2 = 14 346 + 1;
  • 14 346 : 2 = 7 173 + 0;
  • 7 173 : 2 = 3 586 + 1;
  • 3 586 : 2 = 1 793 + 0;
  • 1 793 : 2 = 896 + 1;
  • 896 : 2 = 448 + 0;
  • 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 110 011 000 010 101 101 011 011 110 378(10) =


1110 0000 0010 1010 0011 1001 0100 0011 0100 1011 0000 0001 1101 0010 1000 0010 0101 1101 1100 1010 1000 0000 0101 1110 1010(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 110 011 000 010 101 101 011 011 110 378(10) =


1110 0000 0010 1010 0011 1001 0100 0011 0100 1011 0000 0001 1101 0010 1000 0010 0101 1101 1100 1010 1000 0000 0101 1110 1010(2) =


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


1,1100 0000 0101 0100 0111 0010 1000 0110 1001 0110 0000 0011 1010 0101 0000 0100 1011 1011 1001 0101 0000 0000 1011 1101 010(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 0101 0100 0111 0010 1000 0110 1001 0110 0000 0011 1010 0101 0000 0100 1011 1011 1001 0101 0000 0000 1011 1101 010


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


110 0000 0010 1010 0011 1001


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 0010 1010 0011 1001


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

0 - 1110 0010 - 110 0000 0010 1010 0011 1001


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