110 111 110 110 101 110 000 100 999 947 scris ca binar pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754

Scriere 110 111 110 110 101 110 000 100 999 947(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
110 111 110 110 101 110 000 100 999 947(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;
  • 110 111 110 110 101 110 000 100 999 947 : 2 = 55 055 555 055 050 555 000 050 499 973 + 1;
  • 55 055 555 055 050 555 000 050 499 973 : 2 = 27 527 777 527 525 277 500 025 249 986 + 1;
  • 27 527 777 527 525 277 500 025 249 986 : 2 = 13 763 888 763 762 638 750 012 624 993 + 0;
  • 13 763 888 763 762 638 750 012 624 993 : 2 = 6 881 944 381 881 319 375 006 312 496 + 1;
  • 6 881 944 381 881 319 375 006 312 496 : 2 = 3 440 972 190 940 659 687 503 156 248 + 0;
  • 3 440 972 190 940 659 687 503 156 248 : 2 = 1 720 486 095 470 329 843 751 578 124 + 0;
  • 1 720 486 095 470 329 843 751 578 124 : 2 = 860 243 047 735 164 921 875 789 062 + 0;
  • 860 243 047 735 164 921 875 789 062 : 2 = 430 121 523 867 582 460 937 894 531 + 0;
  • 430 121 523 867 582 460 937 894 531 : 2 = 215 060 761 933 791 230 468 947 265 + 1;
  • 215 060 761 933 791 230 468 947 265 : 2 = 107 530 380 966 895 615 234 473 632 + 1;
  • 107 530 380 966 895 615 234 473 632 : 2 = 53 765 190 483 447 807 617 236 816 + 0;
  • 53 765 190 483 447 807 617 236 816 : 2 = 26 882 595 241 723 903 808 618 408 + 0;
  • 26 882 595 241 723 903 808 618 408 : 2 = 13 441 297 620 861 951 904 309 204 + 0;
  • 13 441 297 620 861 951 904 309 204 : 2 = 6 720 648 810 430 975 952 154 602 + 0;
  • 6 720 648 810 430 975 952 154 602 : 2 = 3 360 324 405 215 487 976 077 301 + 0;
  • 3 360 324 405 215 487 976 077 301 : 2 = 1 680 162 202 607 743 988 038 650 + 1;
  • 1 680 162 202 607 743 988 038 650 : 2 = 840 081 101 303 871 994 019 325 + 0;
  • 840 081 101 303 871 994 019 325 : 2 = 420 040 550 651 935 997 009 662 + 1;
  • 420 040 550 651 935 997 009 662 : 2 = 210 020 275 325 967 998 504 831 + 0;
  • 210 020 275 325 967 998 504 831 : 2 = 105 010 137 662 983 999 252 415 + 1;
  • 105 010 137 662 983 999 252 415 : 2 = 52 505 068 831 491 999 626 207 + 1;
  • 52 505 068 831 491 999 626 207 : 2 = 26 252 534 415 745 999 813 103 + 1;
  • 26 252 534 415 745 999 813 103 : 2 = 13 126 267 207 872 999 906 551 + 1;
  • 13 126 267 207 872 999 906 551 : 2 = 6 563 133 603 936 499 953 275 + 1;
  • 6 563 133 603 936 499 953 275 : 2 = 3 281 566 801 968 249 976 637 + 1;
  • 3 281 566 801 968 249 976 637 : 2 = 1 640 783 400 984 124 988 318 + 1;
  • 1 640 783 400 984 124 988 318 : 2 = 820 391 700 492 062 494 159 + 0;
  • 820 391 700 492 062 494 159 : 2 = 410 195 850 246 031 247 079 + 1;
  • 410 195 850 246 031 247 079 : 2 = 205 097 925 123 015 623 539 + 1;
  • 205 097 925 123 015 623 539 : 2 = 102 548 962 561 507 811 769 + 1;
  • 102 548 962 561 507 811 769 : 2 = 51 274 481 280 753 905 884 + 1;
  • 51 274 481 280 753 905 884 : 2 = 25 637 240 640 376 952 942 + 0;
  • 25 637 240 640 376 952 942 : 2 = 12 818 620 320 188 476 471 + 0;
  • 12 818 620 320 188 476 471 : 2 = 6 409 310 160 094 238 235 + 1;
  • 6 409 310 160 094 238 235 : 2 = 3 204 655 080 047 119 117 + 1;
  • 3 204 655 080 047 119 117 : 2 = 1 602 327 540 023 559 558 + 1;
  • 1 602 327 540 023 559 558 : 2 = 801 163 770 011 779 779 + 0;
  • 801 163 770 011 779 779 : 2 = 400 581 885 005 889 889 + 1;
  • 400 581 885 005 889 889 : 2 = 200 290 942 502 944 944 + 1;
  • 200 290 942 502 944 944 : 2 = 100 145 471 251 472 472 + 0;
  • 100 145 471 251 472 472 : 2 = 50 072 735 625 736 236 + 0;
  • 50 072 735 625 736 236 : 2 = 25 036 367 812 868 118 + 0;
  • 25 036 367 812 868 118 : 2 = 12 518 183 906 434 059 + 0;
  • 12 518 183 906 434 059 : 2 = 6 259 091 953 217 029 + 1;
  • 6 259 091 953 217 029 : 2 = 3 129 545 976 608 514 + 1;
  • 3 129 545 976 608 514 : 2 = 1 564 772 988 304 257 + 0;
  • 1 564 772 988 304 257 : 2 = 782 386 494 152 128 + 1;
  • 782 386 494 152 128 : 2 = 391 193 247 076 064 + 0;
  • 391 193 247 076 064 : 2 = 195 596 623 538 032 + 0;
  • 195 596 623 538 032 : 2 = 97 798 311 769 016 + 0;
  • 97 798 311 769 016 : 2 = 48 899 155 884 508 + 0;
  • 48 899 155 884 508 : 2 = 24 449 577 942 254 + 0;
  • 24 449 577 942 254 : 2 = 12 224 788 971 127 + 0;
  • 12 224 788 971 127 : 2 = 6 112 394 485 563 + 1;
  • 6 112 394 485 563 : 2 = 3 056 197 242 781 + 1;
  • 3 056 197 242 781 : 2 = 1 528 098 621 390 + 1;
  • 1 528 098 621 390 : 2 = 764 049 310 695 + 0;
  • 764 049 310 695 : 2 = 382 024 655 347 + 1;
  • 382 024 655 347 : 2 = 191 012 327 673 + 1;
  • 191 012 327 673 : 2 = 95 506 163 836 + 1;
  • 95 506 163 836 : 2 = 47 753 081 918 + 0;
  • 47 753 081 918 : 2 = 23 876 540 959 + 0;
  • 23 876 540 959 : 2 = 11 938 270 479 + 1;
  • 11 938 270 479 : 2 = 5 969 135 239 + 1;
  • 5 969 135 239 : 2 = 2 984 567 619 + 1;
  • 2 984 567 619 : 2 = 1 492 283 809 + 1;
  • 1 492 283 809 : 2 = 746 141 904 + 1;
  • 746 141 904 : 2 = 373 070 952 + 0;
  • 373 070 952 : 2 = 186 535 476 + 0;
  • 186 535 476 : 2 = 93 267 738 + 0;
  • 93 267 738 : 2 = 46 633 869 + 0;
  • 46 633 869 : 2 = 23 316 934 + 1;
  • 23 316 934 : 2 = 11 658 467 + 0;
  • 11 658 467 : 2 = 5 829 233 + 1;
  • 5 829 233 : 2 = 2 914 616 + 1;
  • 2 914 616 : 2 = 1 457 308 + 0;
  • 1 457 308 : 2 = 728 654 + 0;
  • 728 654 : 2 = 364 327 + 0;
  • 364 327 : 2 = 182 163 + 1;
  • 182 163 : 2 = 91 081 + 1;
  • 91 081 : 2 = 45 540 + 1;
  • 45 540 : 2 = 22 770 + 0;
  • 22 770 : 2 = 11 385 + 0;
  • 11 385 : 2 = 5 692 + 1;
  • 5 692 : 2 = 2 846 + 0;
  • 2 846 : 2 = 1 423 + 0;
  • 1 423 : 2 = 711 + 1;
  • 711 : 2 = 355 + 1;
  • 355 : 2 = 177 + 1;
  • 177 : 2 = 88 + 1;
  • 88 : 2 = 44 + 0;
  • 44 : 2 = 22 + 0;
  • 22 : 2 = 11 + 0;
  • 11 : 2 = 5 + 1;
  • 5 : 2 = 2 + 1;
  • 2 : 2 = 1 + 0;
  • 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.

110 111 110 110 101 110 000 100 999 947(10) =


1 0110 0011 1100 1001 1100 0110 1000 0111 1100 1110 1110 0000 0101 1000 0110 1110 0111 1011 1111 1010 1000 0011 0000 1011(2)


3. Normalizează reprezentarea binară a numărului.

Mută virgula cu 96 poziții la stânga, astfel încât partea întreagă a acestuia să aibă un singur bit, diferit de 0:


110 111 110 110 101 110 000 100 999 947(10) =


1 0110 0011 1100 1001 1100 0110 1000 0111 1100 1110 1110 0000 0101 1000 0110 1110 0111 1011 1111 1010 1000 0011 0000 1011(2) =


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


1,0110 0011 1100 1001 1100 0110 1000 0111 1100 1110 1110 0000 0101 1000 0110 1110 0111 1011 1111 1010 1000 0011 0000 1011(2) × 296


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): 96


Mantisă (nenormalizată):
1,0110 0011 1100 1001 1100 0110 1000 0111 1100 1110 1110 0000 0101 1000 0110 1110 0111 1011 1111 1010 1000 0011 0000 1011


5. Ajustează exponentul.

Folosește reprezentarea deplasată pe 8 biți:


Exponent (ajustat) =


Exponent (neajustat) + 2(8-1) - 1 =


96 + 2(8-1) - 1 =


(96 + 127)(10) =


223(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;
  • 223 : 2 = 111 + 1;
  • 111 : 2 = 55 + 1;
  • 55 : 2 = 27 + 1;
  • 27 : 2 = 13 + 1;
  • 13 : 2 = 6 + 1;
  • 6 : 2 = 3 + 0;
  • 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) =


223(10) =


1101 1111(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. 011 0001 1110 0100 1110 0011 0 1000 0111 1100 1110 1110 0000 0101 1000 0110 1110 0111 1011 1111 1010 1000 0011 0000 1011 =


011 0001 1110 0100 1110 0011


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) =
1101 1111


Mantisă (23 biți) =
011 0001 1110 0100 1110 0011


Numărul zecimal 110 111 110 110 101 110 000 100 999 947 scris în binar în representarea pe 32 biți, precizie simplă, în virgulă mobilă în standard IEEE 754:

0 - 1101 1111 - 011 0001 1110 0100 1110 0011


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