1 000 010 111 001 011 000 000 000 000 780 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 1 000 010 111 001 011 000 000 000 000 780(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 010 111 001 011 000 000 000 000 780(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 010 111 001 011 000 000 000 000 780 : 2 = 500 005 055 500 505 500 000 000 000 390 + 0;
  • 500 005 055 500 505 500 000 000 000 390 : 2 = 250 002 527 750 252 750 000 000 000 195 + 0;
  • 250 002 527 750 252 750 000 000 000 195 : 2 = 125 001 263 875 126 375 000 000 000 097 + 1;
  • 125 001 263 875 126 375 000 000 000 097 : 2 = 62 500 631 937 563 187 500 000 000 048 + 1;
  • 62 500 631 937 563 187 500 000 000 048 : 2 = 31 250 315 968 781 593 750 000 000 024 + 0;
  • 31 250 315 968 781 593 750 000 000 024 : 2 = 15 625 157 984 390 796 875 000 000 012 + 0;
  • 15 625 157 984 390 796 875 000 000 012 : 2 = 7 812 578 992 195 398 437 500 000 006 + 0;
  • 7 812 578 992 195 398 437 500 000 006 : 2 = 3 906 289 496 097 699 218 750 000 003 + 0;
  • 3 906 289 496 097 699 218 750 000 003 : 2 = 1 953 144 748 048 849 609 375 000 001 + 1;
  • 1 953 144 748 048 849 609 375 000 001 : 2 = 976 572 374 024 424 804 687 500 000 + 1;
  • 976 572 374 024 424 804 687 500 000 : 2 = 488 286 187 012 212 402 343 750 000 + 0;
  • 488 286 187 012 212 402 343 750 000 : 2 = 244 143 093 506 106 201 171 875 000 + 0;
  • 244 143 093 506 106 201 171 875 000 : 2 = 122 071 546 753 053 100 585 937 500 + 0;
  • 122 071 546 753 053 100 585 937 500 : 2 = 61 035 773 376 526 550 292 968 750 + 0;
  • 61 035 773 376 526 550 292 968 750 : 2 = 30 517 886 688 263 275 146 484 375 + 0;
  • 30 517 886 688 263 275 146 484 375 : 2 = 15 258 943 344 131 637 573 242 187 + 1;
  • 15 258 943 344 131 637 573 242 187 : 2 = 7 629 471 672 065 818 786 621 093 + 1;
  • 7 629 471 672 065 818 786 621 093 : 2 = 3 814 735 836 032 909 393 310 546 + 1;
  • 3 814 735 836 032 909 393 310 546 : 2 = 1 907 367 918 016 454 696 655 273 + 0;
  • 1 907 367 918 016 454 696 655 273 : 2 = 953 683 959 008 227 348 327 636 + 1;
  • 953 683 959 008 227 348 327 636 : 2 = 476 841 979 504 113 674 163 818 + 0;
  • 476 841 979 504 113 674 163 818 : 2 = 238 420 989 752 056 837 081 909 + 0;
  • 238 420 989 752 056 837 081 909 : 2 = 119 210 494 876 028 418 540 954 + 1;
  • 119 210 494 876 028 418 540 954 : 2 = 59 605 247 438 014 209 270 477 + 0;
  • 59 605 247 438 014 209 270 477 : 2 = 29 802 623 719 007 104 635 238 + 1;
  • 29 802 623 719 007 104 635 238 : 2 = 14 901 311 859 503 552 317 619 + 0;
  • 14 901 311 859 503 552 317 619 : 2 = 7 450 655 929 751 776 158 809 + 1;
  • 7 450 655 929 751 776 158 809 : 2 = 3 725 327 964 875 888 079 404 + 1;
  • 3 725 327 964 875 888 079 404 : 2 = 1 862 663 982 437 944 039 702 + 0;
  • 1 862 663 982 437 944 039 702 : 2 = 931 331 991 218 972 019 851 + 0;
  • 931 331 991 218 972 019 851 : 2 = 465 665 995 609 486 009 925 + 1;
  • 465 665 995 609 486 009 925 : 2 = 232 832 997 804 743 004 962 + 1;
  • 232 832 997 804 743 004 962 : 2 = 116 416 498 902 371 502 481 + 0;
  • 116 416 498 902 371 502 481 : 2 = 58 208 249 451 185 751 240 + 1;
  • 58 208 249 451 185 751 240 : 2 = 29 104 124 725 592 875 620 + 0;
  • 29 104 124 725 592 875 620 : 2 = 14 552 062 362 796 437 810 + 0;
  • 14 552 062 362 796 437 810 : 2 = 7 276 031 181 398 218 905 + 0;
  • 7 276 031 181 398 218 905 : 2 = 3 638 015 590 699 109 452 + 1;
  • 3 638 015 590 699 109 452 : 2 = 1 819 007 795 349 554 726 + 0;
  • 1 819 007 795 349 554 726 : 2 = 909 503 897 674 777 363 + 0;
  • 909 503 897 674 777 363 : 2 = 454 751 948 837 388 681 + 1;
  • 454 751 948 837 388 681 : 2 = 227 375 974 418 694 340 + 1;
  • 227 375 974 418 694 340 : 2 = 113 687 987 209 347 170 + 0;
  • 113 687 987 209 347 170 : 2 = 56 843 993 604 673 585 + 0;
  • 56 843 993 604 673 585 : 2 = 28 421 996 802 336 792 + 1;
  • 28 421 996 802 336 792 : 2 = 14 210 998 401 168 396 + 0;
  • 14 210 998 401 168 396 : 2 = 7 105 499 200 584 198 + 0;
  • 7 105 499 200 584 198 : 2 = 3 552 749 600 292 099 + 0;
  • 3 552 749 600 292 099 : 2 = 1 776 374 800 146 049 + 1;
  • 1 776 374 800 146 049 : 2 = 888 187 400 073 024 + 1;
  • 888 187 400 073 024 : 2 = 444 093 700 036 512 + 0;
  • 444 093 700 036 512 : 2 = 222 046 850 018 256 + 0;
  • 222 046 850 018 256 : 2 = 111 023 425 009 128 + 0;
  • 111 023 425 009 128 : 2 = 55 511 712 504 564 + 0;
  • 55 511 712 504 564 : 2 = 27 755 856 252 282 + 0;
  • 27 755 856 252 282 : 2 = 13 877 928 126 141 + 0;
  • 13 877 928 126 141 : 2 = 6 938 964 063 070 + 1;
  • 6 938 964 063 070 : 2 = 3 469 482 031 535 + 0;
  • 3 469 482 031 535 : 2 = 1 734 741 015 767 + 1;
  • 1 734 741 015 767 : 2 = 867 370 507 883 + 1;
  • 867 370 507 883 : 2 = 433 685 253 941 + 1;
  • 433 685 253 941 : 2 = 216 842 626 970 + 1;
  • 216 842 626 970 : 2 = 108 421 313 485 + 0;
  • 108 421 313 485 : 2 = 54 210 656 742 + 1;
  • 54 210 656 742 : 2 = 27 105 328 371 + 0;
  • 27 105 328 371 : 2 = 13 552 664 185 + 1;
  • 13 552 664 185 : 2 = 6 776 332 092 + 1;
  • 6 776 332 092 : 2 = 3 388 166 046 + 0;
  • 3 388 166 046 : 2 = 1 694 083 023 + 0;
  • 1 694 083 023 : 2 = 847 041 511 + 1;
  • 847 041 511 : 2 = 423 520 755 + 1;
  • 423 520 755 : 2 = 211 760 377 + 1;
  • 211 760 377 : 2 = 105 880 188 + 1;
  • 105 880 188 : 2 = 52 940 094 + 0;
  • 52 940 094 : 2 = 26 470 047 + 0;
  • 26 470 047 : 2 = 13 235 023 + 1;
  • 13 235 023 : 2 = 6 617 511 + 1;
  • 6 617 511 : 2 = 3 308 755 + 1;
  • 3 308 755 : 2 = 1 654 377 + 1;
  • 1 654 377 : 2 = 827 188 + 1;
  • 827 188 : 2 = 413 594 + 0;
  • 413 594 : 2 = 206 797 + 0;
  • 206 797 : 2 = 103 398 + 1;
  • 103 398 : 2 = 51 699 + 0;
  • 51 699 : 2 = 25 849 + 1;
  • 25 849 : 2 = 12 924 + 1;
  • 12 924 : 2 = 6 462 + 0;
  • 6 462 : 2 = 3 231 + 0;
  • 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 010 111 001 011 000 000 000 000 780(10) =


1100 1001 1111 0011 0100 1111 1001 1110 0110 1011 1101 0000 0011 0001 0011 0010 0010 1100 1101 0100 1011 1000 0011 0000 1100(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 010 111 001 011 000 000 000 000 780(10) =


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


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


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


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


100 1001 1111 0011 0100 1111


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 0011 0100 1111


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

0 - 1110 0010 - 100 1001 1111 0011 0100 1111


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