32bit IEEE 754: Nr. zecimal ↗ Binar, precizie simplă, virgulă mobilă: -53,003 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 -53,003(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:
|-53,003| = 53,003
2. Întâi convertește în binar (în baza 2) partea întreagă: 53.
Î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;
- 53 : 2 = 26 + 1;
- 26 : 2 = 13 + 0;
- 13 : 2 = 6 + 1;
- 6 : 2 = 3 + 0;
- 3 : 2 = 1 + 1;
- 1 : 2 = 0 + 1;
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.
53(10) =
11 0101(2)
4. Convertește în binar (baza 2) partea fracționară: 0,003.
Î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,003 × 2 = 0 + 0,006;
- 2) 0,006 × 2 = 0 + 0,012;
- 3) 0,012 × 2 = 0 + 0,024;
- 4) 0,024 × 2 = 0 + 0,048;
- 5) 0,048 × 2 = 0 + 0,096;
- 6) 0,096 × 2 = 0 + 0,192;
- 7) 0,192 × 2 = 0 + 0,384;
- 8) 0,384 × 2 = 0 + 0,768;
- 9) 0,768 × 2 = 1 + 0,536;
- 10) 0,536 × 2 = 1 + 0,072;
- 11) 0,072 × 2 = 0 + 0,144;
- 12) 0,144 × 2 = 0 + 0,288;
- 13) 0,288 × 2 = 0 + 0,576;
- 14) 0,576 × 2 = 1 + 0,152;
- 15) 0,152 × 2 = 0 + 0,304;
- 16) 0,304 × 2 = 0 + 0,608;
- 17) 0,608 × 2 = 1 + 0,216;
- 18) 0,216 × 2 = 0 + 0,432;
- 19) 0,432 × 2 = 0 + 0,864;
- 20) 0,864 × 2 = 1 + 0,728;
- 21) 0,728 × 2 = 1 + 0,456;
- 22) 0,456 × 2 = 0 + 0,912;
- 23) 0,912 × 2 = 1 + 0,824;
- 24) 0,824 × 2 = 1 + 0,648;
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,003(10) =
0,0000 0000 1100 0100 1001 1011(2)
6. Numărul pozitiv înainte de normalizare:
53,003(10) =
11 0101,0000 0000 1100 0100 1001 1011(2)
7. Normalizează reprezentarea binară a numărului.
Mută virgula cu 5 poziții la stânga, astfel încât partea întreagă a acestuia să aibă un singur bit, diferit de 0:
53,003(10) =
11 0101,0000 0000 1100 0100 1001 1011(2) =
11 0101,0000 0000 1100 0100 1001 1011(2) × 20 =
1,1010 1000 0000 0110 0010 0100 1101 1(2) × 25
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): 5
Mantisă (nenormalizată):
1,1010 1000 0000 0110 0010 0100 1101 1
9. Ajustează exponentul.
Folosește reprezentarea deplasată pe 8 biți:
Exponent (ajustat) =
Exponent (neajustat) + 2(8-1) - 1 =
5 + 2(8-1) - 1 =
(5 + 127)(10) =
132(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;
- 132 : 2 = 66 + 0;
- 66 : 2 = 33 + 0;
- 33 : 2 = 16 + 1;
- 16 : 2 = 8 + 0;
- 8 : 2 = 4 + 0;
- 4 : 2 = 2 + 0;
- 2 : 2 = 1 + 0;
- 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) =
132(10) =
1000 0100(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, 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. 101 0100 0000 0011 0001 0010 01 1011 =
101 0100 0000 0011 0001 0010
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) =
1000 0100
Mantisă (23 biți) =
101 0100 0000 0011 0001 0010
Numărul zecimal în baza zece -53,003 convertit și scris în binar în representarea pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754:
1 - 1000 0100 - 101 0100 0000 0011 0001 0010
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: