32bit IEEE 754: Nr. zecimal ↗ Binar, precizie simplă, virgulă mobilă: -0,000 003 39 Convertește (transformă) numărul în binar în reprezentarea pe 32 biți, precizie simplă, virgulă mobilă în standard IEEE 754, din număr în sistem zecimal în baza zece
Numărul -0,000 003 39(10) convertit și scris în binar în reprezentarea 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ă)
1. Începe cu versiunea pozitivă a numărului:
|-0,000 003 39| = 0,000 003 39
2. Întâi convertește în binar (în baza 2) partea întreagă: 0.
Î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;
- 0 : 2 = 0 + 0;
3. Construiește reprezentarea în baza 2 a părții întregi a numărului.
Ia fiecare rest al împărțirilor începând din partea de jos a listei construite mai sus.
0(10) =
0(2)
4. Convertește în binar (baza 2) partea fracționară: 0,000 003 39.
Înmulțește numărul în mod repetat cu 2.
Notăm mai jos fiecare parte întreagă a înmulțirilor.
Ne oprim când obținem o parte fracționară egală cu zero.
- #) înmulțire = întreg + fracționar;
- 1) 0,000 003 39 × 2 = 0 + 0,000 006 78;
- 2) 0,000 006 78 × 2 = 0 + 0,000 013 56;
- 3) 0,000 013 56 × 2 = 0 + 0,000 027 12;
- 4) 0,000 027 12 × 2 = 0 + 0,000 054 24;
- 5) 0,000 054 24 × 2 = 0 + 0,000 108 48;
- 6) 0,000 108 48 × 2 = 0 + 0,000 216 96;
- 7) 0,000 216 96 × 2 = 0 + 0,000 433 92;
- 8) 0,000 433 92 × 2 = 0 + 0,000 867 84;
- 9) 0,000 867 84 × 2 = 0 + 0,001 735 68;
- 10) 0,001 735 68 × 2 = 0 + 0,003 471 36;
- 11) 0,003 471 36 × 2 = 0 + 0,006 942 72;
- 12) 0,006 942 72 × 2 = 0 + 0,013 885 44;
- 13) 0,013 885 44 × 2 = 0 + 0,027 770 88;
- 14) 0,027 770 88 × 2 = 0 + 0,055 541 76;
- 15) 0,055 541 76 × 2 = 0 + 0,111 083 52;
- 16) 0,111 083 52 × 2 = 0 + 0,222 167 04;
- 17) 0,222 167 04 × 2 = 0 + 0,444 334 08;
- 18) 0,444 334 08 × 2 = 0 + 0,888 668 16;
- 19) 0,888 668 16 × 2 = 1 + 0,777 336 32;
- 20) 0,777 336 32 × 2 = 1 + 0,554 672 64;
- 21) 0,554 672 64 × 2 = 1 + 0,109 345 28;
- 22) 0,109 345 28 × 2 = 0 + 0,218 690 56;
- 23) 0,218 690 56 × 2 = 0 + 0,437 381 12;
- 24) 0,437 381 12 × 2 = 0 + 0,874 762 24;
- 25) 0,874 762 24 × 2 = 1 + 0,749 524 48;
- 26) 0,749 524 48 × 2 = 1 + 0,499 048 96;
- 27) 0,499 048 96 × 2 = 0 + 0,998 097 92;
- 28) 0,998 097 92 × 2 = 1 + 0,996 195 84;
- 29) 0,996 195 84 × 2 = 1 + 0,992 391 68;
- 30) 0,992 391 68 × 2 = 1 + 0,984 783 36;
- 31) 0,984 783 36 × 2 = 1 + 0,969 566 72;
- 32) 0,969 566 72 × 2 = 1 + 0,939 133 44;
- 33) 0,939 133 44 × 2 = 1 + 0,878 266 88;
- 34) 0,878 266 88 × 2 = 1 + 0,756 533 76;
- 35) 0,756 533 76 × 2 = 1 + 0,513 067 52;
- 36) 0,513 067 52 × 2 = 1 + 0,026 135 04;
- 37) 0,026 135 04 × 2 = 0 + 0,052 270 08;
- 38) 0,052 270 08 × 2 = 0 + 0,104 540 16;
- 39) 0,104 540 16 × 2 = 0 + 0,209 080 32;
- 40) 0,209 080 32 × 2 = 0 + 0,418 160 64;
- 41) 0,418 160 64 × 2 = 0 + 0,836 321 28;
- 42) 0,836 321 28 × 2 = 1 + 0,672 642 56;
Nicio parte fracționară egală cu zero n-a fost obținută. Însă am efectuat un număr suficient de iterații (peste limita de Mantisă) și am obținut măcar o parte întreagă diferită de zero => STOP (pierdem precizie...)
5. Construiește reprezentarea în baza 2 a părții fracționare a numărului.
Ia fiecare parte întreagă a rezultatelor înmulțirilor, începând din partea de sus a listei construite:
0,000 003 39(10) =
0,0000 0000 0000 0000 0011 1000 1101 1111 1111 0000 01(2)
6. Numărul pozitiv înainte de normalizare:
0,000 003 39(10) =
0,0000 0000 0000 0000 0011 1000 1101 1111 1111 0000 01(2)
7. Normalizează reprezentarea binară a numărului.
Mută virgula cu 19 poziții la dreapta, astfel încât partea întreagă a acestuia să aibă un singur bit, diferit de 0:
0,000 003 39(10) =
0,0000 0000 0000 0000 0011 1000 1101 1111 1111 0000 01(2) =
0,0000 0000 0000 0000 0011 1000 1101 1111 1111 0000 01(2) × 20 =
1,1100 0110 1111 1111 1000 001(2) × 2-19
8. 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 1 (un număr negativ)
Exponent (neajustat): -19
Mantisă (nenormalizată):
1,1100 0110 1111 1111 1000 001
9. Ajustează exponentul.
Folosește reprezentarea deplasată pe 8 biți:
Exponent (ajustat) =
Exponent (neajustat) + 2(8-1) - 1 =
-19 + 2(8-1) - 1 =
(-19 + 127)(10) =
108(10)
10. 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;
- 108 : 2 = 54 + 0;
- 54 : 2 = 27 + 0;
- 27 : 2 = 13 + 1;
- 13 : 2 = 6 + 1;
- 6 : 2 = 3 + 0;
- 3 : 2 = 1 + 1;
- 1 : 2 = 0 + 1;
11. 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) =
108(10) =
0110 1100(2)
12. 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, doar dacă e necesar (nu e cazul aici).
Mantisă (normalizată) =
1. 110 0011 0111 1111 1100 0001 =
110 0011 0111 1111 1100 0001
13. 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) =
1 (un număr negativ)
Exponent (8 biți) =
0110 1100
Mantisă (23 biți) =
110 0011 0111 1111 1100 0001
Numărul zecimal în baza zece -0,000 003 39 convertit și scris în binar în representarea pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754:
1 - 0110 1100 - 110 0011 0111 1111 1100 0001
Mai multe operații cu numere zecimale convertite în binar în reprezentarea pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754: