1 010 101 111 010 010 001 100 099 997 340 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 1 010 101 111 010 010 001 100 099 997 340(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 010 101 111 010 010 001 100 099 997 340(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 010 101 111 010 010 001 100 099 997 340 : 2 = 505 050 555 505 005 000 550 049 998 670 + 0;
  • 505 050 555 505 005 000 550 049 998 670 : 2 = 252 525 277 752 502 500 275 024 999 335 + 0;
  • 252 525 277 752 502 500 275 024 999 335 : 2 = 126 262 638 876 251 250 137 512 499 667 + 1;
  • 126 262 638 876 251 250 137 512 499 667 : 2 = 63 131 319 438 125 625 068 756 249 833 + 1;
  • 63 131 319 438 125 625 068 756 249 833 : 2 = 31 565 659 719 062 812 534 378 124 916 + 1;
  • 31 565 659 719 062 812 534 378 124 916 : 2 = 15 782 829 859 531 406 267 189 062 458 + 0;
  • 15 782 829 859 531 406 267 189 062 458 : 2 = 7 891 414 929 765 703 133 594 531 229 + 0;
  • 7 891 414 929 765 703 133 594 531 229 : 2 = 3 945 707 464 882 851 566 797 265 614 + 1;
  • 3 945 707 464 882 851 566 797 265 614 : 2 = 1 972 853 732 441 425 783 398 632 807 + 0;
  • 1 972 853 732 441 425 783 398 632 807 : 2 = 986 426 866 220 712 891 699 316 403 + 1;
  • 986 426 866 220 712 891 699 316 403 : 2 = 493 213 433 110 356 445 849 658 201 + 1;
  • 493 213 433 110 356 445 849 658 201 : 2 = 246 606 716 555 178 222 924 829 100 + 1;
  • 246 606 716 555 178 222 924 829 100 : 2 = 123 303 358 277 589 111 462 414 550 + 0;
  • 123 303 358 277 589 111 462 414 550 : 2 = 61 651 679 138 794 555 731 207 275 + 0;
  • 61 651 679 138 794 555 731 207 275 : 2 = 30 825 839 569 397 277 865 603 637 + 1;
  • 30 825 839 569 397 277 865 603 637 : 2 = 15 412 919 784 698 638 932 801 818 + 1;
  • 15 412 919 784 698 638 932 801 818 : 2 = 7 706 459 892 349 319 466 400 909 + 0;
  • 7 706 459 892 349 319 466 400 909 : 2 = 3 853 229 946 174 659 733 200 454 + 1;
  • 3 853 229 946 174 659 733 200 454 : 2 = 1 926 614 973 087 329 866 600 227 + 0;
  • 1 926 614 973 087 329 866 600 227 : 2 = 963 307 486 543 664 933 300 113 + 1;
  • 963 307 486 543 664 933 300 113 : 2 = 481 653 743 271 832 466 650 056 + 1;
  • 481 653 743 271 832 466 650 056 : 2 = 240 826 871 635 916 233 325 028 + 0;
  • 240 826 871 635 916 233 325 028 : 2 = 120 413 435 817 958 116 662 514 + 0;
  • 120 413 435 817 958 116 662 514 : 2 = 60 206 717 908 979 058 331 257 + 0;
  • 60 206 717 908 979 058 331 257 : 2 = 30 103 358 954 489 529 165 628 + 1;
  • 30 103 358 954 489 529 165 628 : 2 = 15 051 679 477 244 764 582 814 + 0;
  • 15 051 679 477 244 764 582 814 : 2 = 7 525 839 738 622 382 291 407 + 0;
  • 7 525 839 738 622 382 291 407 : 2 = 3 762 919 869 311 191 145 703 + 1;
  • 3 762 919 869 311 191 145 703 : 2 = 1 881 459 934 655 595 572 851 + 1;
  • 1 881 459 934 655 595 572 851 : 2 = 940 729 967 327 797 786 425 + 1;
  • 940 729 967 327 797 786 425 : 2 = 470 364 983 663 898 893 212 + 1;
  • 470 364 983 663 898 893 212 : 2 = 235 182 491 831 949 446 606 + 0;
  • 235 182 491 831 949 446 606 : 2 = 117 591 245 915 974 723 303 + 0;
  • 117 591 245 915 974 723 303 : 2 = 58 795 622 957 987 361 651 + 1;
  • 58 795 622 957 987 361 651 : 2 = 29 397 811 478 993 680 825 + 1;
  • 29 397 811 478 993 680 825 : 2 = 14 698 905 739 496 840 412 + 1;
  • 14 698 905 739 496 840 412 : 2 = 7 349 452 869 748 420 206 + 0;
  • 7 349 452 869 748 420 206 : 2 = 3 674 726 434 874 210 103 + 0;
  • 3 674 726 434 874 210 103 : 2 = 1 837 363 217 437 105 051 + 1;
  • 1 837 363 217 437 105 051 : 2 = 918 681 608 718 552 525 + 1;
  • 918 681 608 718 552 525 : 2 = 459 340 804 359 276 262 + 1;
  • 459 340 804 359 276 262 : 2 = 229 670 402 179 638 131 + 0;
  • 229 670 402 179 638 131 : 2 = 114 835 201 089 819 065 + 1;
  • 114 835 201 089 819 065 : 2 = 57 417 600 544 909 532 + 1;
  • 57 417 600 544 909 532 : 2 = 28 708 800 272 454 766 + 0;
  • 28 708 800 272 454 766 : 2 = 14 354 400 136 227 383 + 0;
  • 14 354 400 136 227 383 : 2 = 7 177 200 068 113 691 + 1;
  • 7 177 200 068 113 691 : 2 = 3 588 600 034 056 845 + 1;
  • 3 588 600 034 056 845 : 2 = 1 794 300 017 028 422 + 1;
  • 1 794 300 017 028 422 : 2 = 897 150 008 514 211 + 0;
  • 897 150 008 514 211 : 2 = 448 575 004 257 105 + 1;
  • 448 575 004 257 105 : 2 = 224 287 502 128 552 + 1;
  • 224 287 502 128 552 : 2 = 112 143 751 064 276 + 0;
  • 112 143 751 064 276 : 2 = 56 071 875 532 138 + 0;
  • 56 071 875 532 138 : 2 = 28 035 937 766 069 + 0;
  • 28 035 937 766 069 : 2 = 14 017 968 883 034 + 1;
  • 14 017 968 883 034 : 2 = 7 008 984 441 517 + 0;
  • 7 008 984 441 517 : 2 = 3 504 492 220 758 + 1;
  • 3 504 492 220 758 : 2 = 1 752 246 110 379 + 0;
  • 1 752 246 110 379 : 2 = 876 123 055 189 + 1;
  • 876 123 055 189 : 2 = 438 061 527 594 + 1;
  • 438 061 527 594 : 2 = 219 030 763 797 + 0;
  • 219 030 763 797 : 2 = 109 515 381 898 + 1;
  • 109 515 381 898 : 2 = 54 757 690 949 + 0;
  • 54 757 690 949 : 2 = 27 378 845 474 + 1;
  • 27 378 845 474 : 2 = 13 689 422 737 + 0;
  • 13 689 422 737 : 2 = 6 844 711 368 + 1;
  • 6 844 711 368 : 2 = 3 422 355 684 + 0;
  • 3 422 355 684 : 2 = 1 711 177 842 + 0;
  • 1 711 177 842 : 2 = 855 588 921 + 0;
  • 855 588 921 : 2 = 427 794 460 + 1;
  • 427 794 460 : 2 = 213 897 230 + 0;
  • 213 897 230 : 2 = 106 948 615 + 0;
  • 106 948 615 : 2 = 53 474 307 + 1;
  • 53 474 307 : 2 = 26 737 153 + 1;
  • 26 737 153 : 2 = 13 368 576 + 1;
  • 13 368 576 : 2 = 6 684 288 + 0;
  • 6 684 288 : 2 = 3 342 144 + 0;
  • 3 342 144 : 2 = 1 671 072 + 0;
  • 1 671 072 : 2 = 835 536 + 0;
  • 835 536 : 2 = 417 768 + 0;
  • 417 768 : 2 = 208 884 + 0;
  • 208 884 : 2 = 104 442 + 0;
  • 104 442 : 2 = 52 221 + 0;
  • 52 221 : 2 = 26 110 + 1;
  • 26 110 : 2 = 13 055 + 0;
  • 13 055 : 2 = 6 527 + 1;
  • 6 527 : 2 = 3 263 + 1;
  • 3 263 : 2 = 1 631 + 1;
  • 1 631 : 2 = 815 + 1;
  • 815 : 2 = 407 + 1;
  • 407 : 2 = 203 + 1;
  • 203 : 2 = 101 + 1;
  • 101 : 2 = 50 + 1;
  • 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 010 101 111 010 010 001 100 099 997 340(10) =


1100 1011 1111 1101 0000 0000 1110 0100 0101 0101 1010 1000 1101 1100 1101 1100 1110 0111 1001 0001 1010 1100 1110 1001 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 010 101 111 010 010 001 100 099 997 340(10) =


1100 1011 1111 1101 0000 0000 1110 0100 0101 0101 1010 1000 1101 1100 1101 1100 1110 0111 1001 0001 1010 1100 1110 1001 1100(2) =


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


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


100 1011 1111 1101 0000 0000


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 1011 1111 1101 0000 0000


Numărul zecimal 1 010 101 111 010 010 001 100 099 997 340 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1110 0010 - 100 1011 1111 1101 0000 0000


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