Cześć, byłbym wdzięczny za wytłumaczenie moich wątpliwości odnośnie kodowania liczb zmiennoprzecinkowych w systemie binarnym. Więc mamy: \(\displaystyle{ liczba = mantysa \cdot 2^{cecha}}\), gdzie mantysa jest z zakresy \(\displaystyle{ {0} cup [0,5 ; 1)}\) a cecha jest kodowana w U2. Teraz mamy takie zadanie:
Ile potrzeba bitów na zakodowanie liczb z przedziału \(\displaystyle{ [-45 , 69]}\) z dokładnością do trzech miejsc po przecinku.
I ja to robię tak:
Najpierw dokładność - czyli mantysa:
\(\displaystyle{ 10 ^{-3} = 2 ^{x}
\\10 ^{3} = 2 ^{x}
\\x = log _{2} (10)^3
\\x = 3log _{2}(10)
\\x \approx 3*3,3 \approx 10}\)
Czyli 10 bitów an mantysę, teraz cecha:
\(\displaystyle{ 69 - (-45) = 114 < 2^{7}}\)
I teraz mam problem, bo według źródła do którego patrzyłem teraz mam wziąć 7 bitów na cechę, ale ze wzoru wynika że teraz powinienem zakodować liczbę 7 w kodzie U2, na co wystarczą 3 bity i wziąć liczbę 3 jako ilość bitów potrzebnych na cechę, więc jk to jest - 7 czy 3? Oraz czy potrzebuję przy takim układzie dodatkowych bitów na znak?
[Systemy liczbowe] Zmiennoprzecinkowa w systemie binarnym
-
- Użytkownik
- Posty: 34
- Rejestracja: 7 mar 2017, o 22:30
- Płeć: Mężczyzna
- Lokalizacja: Poland
- Podziękował: 7 razy
- Pomógł: 2 razy
[Systemy liczbowe] Zmiennoprzecinkowa w systemie binarnym
Wystarczy 17 bitów. Dlaczego? Bo bitów potrzeba tyle samo co na zakodowanie liczb całkowitych z przedziału \(\displaystyle{ \left[ -45999; 69999 \right]}\) czyli 115999 liczb.k221 pisze: Ile potrzeba bitów na zakodowanie liczb z przedziału \(\displaystyle{ [-45 , 69]}\) z dokładnością do trzech miejsc po przecinku.