Cum convertești binar pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754:
0 - 0000 0011 - 001 0001 1110 1011 1000 0101.
1. Identifică elementele ce alcătuiesc reprezentarea numărului binar:
Primul bit (cel mai din stânga) indică semnul,
1 = negativ, 0 = pozitiv.
Următorii 8 biți conțin exponentul:
0000 0011
Ultimii 23 de biți conțin mantisa:
001 0001 1110 1011 1000 0101
2. Convertește exponentul, care întotdeauna reprezintă un număr întreg pozitiv, din binar (baza 2) în zecimal (baza 10):
0000 0011(2) =
0 × 27 + 0 × 26 + 0 × 25 + 0 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 1 × 20 =
0 + 0 + 0 + 0 + 0 + 0 + 2 + 1 =
2 + 1 =
3(10)
3. Ajustează exponentul, scade excesul de biți, 2(8 - 1) - 1 = 127, datorat reprezentării deplasate pe 8 biți:
Exponent ajustat = 3 - 127 = -124
4. Convertește mantisa, care reprezintă partea fracționară a numărului (ceea ce urmează după partea întreagă a numărului, separată de aceasta prin virgulă), din binar (baza 2) în zecimal (baza 10):
001 0001 1110 1011 1000 0101(2) =
0 × 2-1 + 0 × 2-2 + 1 × 2-3 + 0 × 2-4 + 0 × 2-5 + 0 × 2-6 + 1 × 2-7 + 1 × 2-8 + 1 × 2-9 + 1 × 2-10 + 0 × 2-11 + 1 × 2-12 + 0 × 2-13 + 1 × 2-14 + 1 × 2-15 + 1 × 2-16 + 0 × 2-17 + 0 × 2-18 + 0 × 2-19 + 0 × 2-20 + 1 × 2-21 + 0 × 2-22 + 1 × 2-23 =
0 + 0 + 0,125 + 0 + 0 + 0 + 0,007 812 5 + 0,003 906 25 + 0,001 953 125 + 0,000 976 562 5 + 0 + 0,000 244 140 625 + 0 + 0,000 061 035 156 25 + 0,000 030 517 578 125 + 0,000 015 258 789 062 5 + 0 + 0 + 0 + 0 + 0,000 000 476 837 158 203 125 + 0 + 0,000 000 119 209 289 550 781 25 =
0,125 + 0,007 812 5 + 0,003 906 25 + 0,001 953 125 + 0,000 976 562 5 + 0,000 244 140 625 + 0,000 061 035 156 25 + 0,000 030 517 578 125 + 0,000 015 258 789 062 5 + 0,000 000 476 837 158 203 125 + 0,000 000 119 209 289 550 781 25 =
0,139 999 985 694 885 253 906 25(10)
Concluzia:
5. Pune toate numerele împreună, pentru a calcula valoarea numărului zecimal real în precizie simplă:
(-1)Semn × (1 + Mantisă) × 2(Exponent ajustat) =
(-1)0 × (1 + 0,139 999 985 694 885 253 906 25) × 2-124 =
1,139 999 985 694 885 253 906 25 × 2-124 =
0,000 000 000 000 000 000 000 000 000 000 000 000 04
0 - 0000 0011 - 001 0001 1110 1011 1000 0101
convertit din
binar pe 32 de biți, precizie simplă, în virgulă mobilă în standard IEEE 754
în
sistem zecimal (baza zece) (float) =
0,000 000 000 000 000 000 000 000 000 000 000 000 04(10)