32bit IEEE 754: Nr. zecimal ↗ Binar, precizie simplă, virgulă mobilă: 1 592,38 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 1 592,38(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. Întâi convertește în binar (în baza 2) partea întreagă: 1 592.
Î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 592 : 2 = 796 + 0;
- 796 : 2 = 398 + 0;
- 398 : 2 = 199 + 0;
- 199 : 2 = 99 + 1;
- 99 : 2 = 49 + 1;
- 49 : 2 = 24 + 1;
- 24 : 2 = 12 + 0;
- 12 : 2 = 6 + 0;
- 6 : 2 = 3 + 0;
- 3 : 2 = 1 + 1;
- 1 : 2 = 0 + 1;
2. 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.
1 592(10) =
110 0011 1000(2)
3. Convertește în binar (baza 2) partea fracționară: 0,38.
Î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,38 × 2 = 0 + 0,76;
- 2) 0,76 × 2 = 1 + 0,52;
- 3) 0,52 × 2 = 1 + 0,04;
- 4) 0,04 × 2 = 0 + 0,08;
- 5) 0,08 × 2 = 0 + 0,16;
- 6) 0,16 × 2 = 0 + 0,32;
- 7) 0,32 × 2 = 0 + 0,64;
- 8) 0,64 × 2 = 1 + 0,28;
- 9) 0,28 × 2 = 0 + 0,56;
- 10) 0,56 × 2 = 1 + 0,12;
- 11) 0,12 × 2 = 0 + 0,24;
- 12) 0,24 × 2 = 0 + 0,48;
- 13) 0,48 × 2 = 0 + 0,96;
- 14) 0,96 × 2 = 1 + 0,92;
- 15) 0,92 × 2 = 1 + 0,84;
- 16) 0,84 × 2 = 1 + 0,68;
- 17) 0,68 × 2 = 1 + 0,36;
- 18) 0,36 × 2 = 0 + 0,72;
- 19) 0,72 × 2 = 1 + 0,44;
- 20) 0,44 × 2 = 0 + 0,88;
- 21) 0,88 × 2 = 1 + 0,76;
- 22) 0,76 × 2 = 1 + 0,52;
- 23) 0,52 × 2 = 1 + 0,04;
- 24) 0,04 × 2 = 0 + 0,08;
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...)
4. 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,38(10) =
0,0110 0001 0100 0111 1010 1110(2)
5. Numărul pozitiv înainte de normalizare:
1 592,38(10) =
110 0011 1000,0110 0001 0100 0111 1010 1110(2)
6. Normalizează reprezentarea binară a numărului.
Mută virgula cu 10 poziții la stânga, astfel încât partea întreagă a acestuia să aibă un singur bit, diferit de 0:
1 592,38(10) =
110 0011 1000,0110 0001 0100 0111 1010 1110(2) =
110 0011 1000,0110 0001 0100 0111 1010 1110(2) × 20 =
1,1000 1110 0001 1000 0101 0001 1110 1011 10(2) × 210
7. 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): 10
Mantisă (nenormalizată):
1,1000 1110 0001 1000 0101 0001 1110 1011 10
8. Ajustează exponentul.
Folosește reprezentarea deplasată pe 8 biți:
Exponent (ajustat) =
Exponent (neajustat) + 2(8-1) - 1 =
10 + 2(8-1) - 1 =
(10 + 127)(10) =
137(10)
9. 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;
- 137 : 2 = 68 + 1;
- 68 : 2 = 34 + 0;
- 34 : 2 = 17 + 0;
- 17 : 2 = 8 + 1;
- 8 : 2 = 4 + 0;
- 4 : 2 = 2 + 0;
- 2 : 2 = 1 + 0;
- 1 : 2 = 0 + 1;
10. 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) =
137(10) =
1000 1001(2)
11. 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 0111 0000 1100 0010 1000 111 1010 1110 =
100 0111 0000 1100 0010 1000
12. 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) =
1000 1001
Mantisă (23 biți) =
100 0111 0000 1100 0010 1000
Numărul zecimal în baza zece 1 592,38 convertit și scris în binar în representarea pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754:
0 - 1000 1001 - 100 0111 0000 1100 0010 1000
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: