- 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