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

Scriere 1 000 110 010 000 011 110 009 999 999 983(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 110 010 000 011 110 009 999 999 983(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 110 010 000 011 110 009 999 999 983 : 2 = 500 055 005 000 005 555 004 999 999 991 + 1;
  • 500 055 005 000 005 555 004 999 999 991 : 2 = 250 027 502 500 002 777 502 499 999 995 + 1;
  • 250 027 502 500 002 777 502 499 999 995 : 2 = 125 013 751 250 001 388 751 249 999 997 + 1;
  • 125 013 751 250 001 388 751 249 999 997 : 2 = 62 506 875 625 000 694 375 624 999 998 + 1;
  • 62 506 875 625 000 694 375 624 999 998 : 2 = 31 253 437 812 500 347 187 812 499 999 + 0;
  • 31 253 437 812 500 347 187 812 499 999 : 2 = 15 626 718 906 250 173 593 906 249 999 + 1;
  • 15 626 718 906 250 173 593 906 249 999 : 2 = 7 813 359 453 125 086 796 953 124 999 + 1;
  • 7 813 359 453 125 086 796 953 124 999 : 2 = 3 906 679 726 562 543 398 476 562 499 + 1;
  • 3 906 679 726 562 543 398 476 562 499 : 2 = 1 953 339 863 281 271 699 238 281 249 + 1;
  • 1 953 339 863 281 271 699 238 281 249 : 2 = 976 669 931 640 635 849 619 140 624 + 1;
  • 976 669 931 640 635 849 619 140 624 : 2 = 488 334 965 820 317 924 809 570 312 + 0;
  • 488 334 965 820 317 924 809 570 312 : 2 = 244 167 482 910 158 962 404 785 156 + 0;
  • 244 167 482 910 158 962 404 785 156 : 2 = 122 083 741 455 079 481 202 392 578 + 0;
  • 122 083 741 455 079 481 202 392 578 : 2 = 61 041 870 727 539 740 601 196 289 + 0;
  • 61 041 870 727 539 740 601 196 289 : 2 = 30 520 935 363 769 870 300 598 144 + 1;
  • 30 520 935 363 769 870 300 598 144 : 2 = 15 260 467 681 884 935 150 299 072 + 0;
  • 15 260 467 681 884 935 150 299 072 : 2 = 7 630 233 840 942 467 575 149 536 + 0;
  • 7 630 233 840 942 467 575 149 536 : 2 = 3 815 116 920 471 233 787 574 768 + 0;
  • 3 815 116 920 471 233 787 574 768 : 2 = 1 907 558 460 235 616 893 787 384 + 0;
  • 1 907 558 460 235 616 893 787 384 : 2 = 953 779 230 117 808 446 893 692 + 0;
  • 953 779 230 117 808 446 893 692 : 2 = 476 889 615 058 904 223 446 846 + 0;
  • 476 889 615 058 904 223 446 846 : 2 = 238 444 807 529 452 111 723 423 + 0;
  • 238 444 807 529 452 111 723 423 : 2 = 119 222 403 764 726 055 861 711 + 1;
  • 119 222 403 764 726 055 861 711 : 2 = 59 611 201 882 363 027 930 855 + 1;
  • 59 611 201 882 363 027 930 855 : 2 = 29 805 600 941 181 513 965 427 + 1;
  • 29 805 600 941 181 513 965 427 : 2 = 14 902 800 470 590 756 982 713 + 1;
  • 14 902 800 470 590 756 982 713 : 2 = 7 451 400 235 295 378 491 356 + 1;
  • 7 451 400 235 295 378 491 356 : 2 = 3 725 700 117 647 689 245 678 + 0;
  • 3 725 700 117 647 689 245 678 : 2 = 1 862 850 058 823 844 622 839 + 0;
  • 1 862 850 058 823 844 622 839 : 2 = 931 425 029 411 922 311 419 + 1;
  • 931 425 029 411 922 311 419 : 2 = 465 712 514 705 961 155 709 + 1;
  • 465 712 514 705 961 155 709 : 2 = 232 856 257 352 980 577 854 + 1;
  • 232 856 257 352 980 577 854 : 2 = 116 428 128 676 490 288 927 + 0;
  • 116 428 128 676 490 288 927 : 2 = 58 214 064 338 245 144 463 + 1;
  • 58 214 064 338 245 144 463 : 2 = 29 107 032 169 122 572 231 + 1;
  • 29 107 032 169 122 572 231 : 2 = 14 553 516 084 561 286 115 + 1;
  • 14 553 516 084 561 286 115 : 2 = 7 276 758 042 280 643 057 + 1;
  • 7 276 758 042 280 643 057 : 2 = 3 638 379 021 140 321 528 + 1;
  • 3 638 379 021 140 321 528 : 2 = 1 819 189 510 570 160 764 + 0;
  • 1 819 189 510 570 160 764 : 2 = 909 594 755 285 080 382 + 0;
  • 909 594 755 285 080 382 : 2 = 454 797 377 642 540 191 + 0;
  • 454 797 377 642 540 191 : 2 = 227 398 688 821 270 095 + 1;
  • 227 398 688 821 270 095 : 2 = 113 699 344 410 635 047 + 1;
  • 113 699 344 410 635 047 : 2 = 56 849 672 205 317 523 + 1;
  • 56 849 672 205 317 523 : 2 = 28 424 836 102 658 761 + 1;
  • 28 424 836 102 658 761 : 2 = 14 212 418 051 329 380 + 1;
  • 14 212 418 051 329 380 : 2 = 7 106 209 025 664 690 + 0;
  • 7 106 209 025 664 690 : 2 = 3 553 104 512 832 345 + 0;
  • 3 553 104 512 832 345 : 2 = 1 776 552 256 416 172 + 1;
  • 1 776 552 256 416 172 : 2 = 888 276 128 208 086 + 0;
  • 888 276 128 208 086 : 2 = 444 138 064 104 043 + 0;
  • 444 138 064 104 043 : 2 = 222 069 032 052 021 + 1;
  • 222 069 032 052 021 : 2 = 111 034 516 026 010 + 1;
  • 111 034 516 026 010 : 2 = 55 517 258 013 005 + 0;
  • 55 517 258 013 005 : 2 = 27 758 629 006 502 + 1;
  • 27 758 629 006 502 : 2 = 13 879 314 503 251 + 0;
  • 13 879 314 503 251 : 2 = 6 939 657 251 625 + 1;
  • 6 939 657 251 625 : 2 = 3 469 828 625 812 + 1;
  • 3 469 828 625 812 : 2 = 1 734 914 312 906 + 0;
  • 1 734 914 312 906 : 2 = 867 457 156 453 + 0;
  • 867 457 156 453 : 2 = 433 728 578 226 + 1;
  • 433 728 578 226 : 2 = 216 864 289 113 + 0;
  • 216 864 289 113 : 2 = 108 432 144 556 + 1;
  • 108 432 144 556 : 2 = 54 216 072 278 + 0;
  • 54 216 072 278 : 2 = 27 108 036 139 + 0;
  • 27 108 036 139 : 2 = 13 554 018 069 + 1;
  • 13 554 018 069 : 2 = 6 777 009 034 + 1;
  • 6 777 009 034 : 2 = 3 388 504 517 + 0;
  • 3 388 504 517 : 2 = 1 694 252 258 + 1;
  • 1 694 252 258 : 2 = 847 126 129 + 0;
  • 847 126 129 : 2 = 423 563 064 + 1;
  • 423 563 064 : 2 = 211 781 532 + 0;
  • 211 781 532 : 2 = 105 890 766 + 0;
  • 105 890 766 : 2 = 52 945 383 + 0;
  • 52 945 383 : 2 = 26 472 691 + 1;
  • 26 472 691 : 2 = 13 236 345 + 1;
  • 13 236 345 : 2 = 6 618 172 + 1;
  • 6 618 172 : 2 = 3 309 086 + 0;
  • 3 309 086 : 2 = 1 654 543 + 0;
  • 1 654 543 : 2 = 827 271 + 1;
  • 827 271 : 2 = 413 635 + 1;
  • 413 635 : 2 = 206 817 + 1;
  • 206 817 : 2 = 103 408 + 1;
  • 103 408 : 2 = 51 704 + 0;
  • 51 704 : 2 = 25 852 + 0;
  • 25 852 : 2 = 12 926 + 0;
  • 12 926 : 2 = 6 463 + 0;
  • 6 463 : 2 = 3 231 + 1;
  • 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 110 010 000 011 110 009 999 999 983(10) =


1100 1001 1111 1000 0111 1001 1100 0101 0110 0101 0011 0101 1001 0011 1110 0011 1110 1110 0111 1100 0000 0100 0011 1110 1111(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 110 010 000 011 110 009 999 999 983(10) =


1100 1001 1111 1000 0111 1001 1100 0101 0110 0101 0011 0101 1001 0011 1110 0011 1110 1110 0111 1100 0000 0100 0011 1110 1111(2) =


1100 1001 1111 1000 0111 1001 1100 0101 0110 0101 0011 0101 1001 0011 1110 0011 1110 1110 0111 1100 0000 0100 0011 1110 1111(2) × 20 =


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


100 1001 1111 1000 0111 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) =
100 1001 1111 1000 0111 1001


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

0 - 1110 0010 - 100 1001 1111 1000 0111 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