logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Typ float 8-bitowy. Czy da się tak zadeklarować floata?

kli 13 Gru 2008 02:41 2077 3
REKLAMA
  • #1 5852441
    kli
    Poziom 13  
    Czy da się w C zadeklarować floata tak, żeby zajmował tylko 1 bajt? Jest do tego jakaś specjalna biblioteka?
  • REKLAMA
  • Pomocny post
    #2 5852892
    Freddie Chopin
    Specjalista - Mikrokontrolery
    nie, bo float zajmuje 4 i koniec. float ktory zajmowalby 1 bajt bylby totalnie bezsensu. 1 bit na znak, zostaje tylko 7 bitow na reszte. dajmy na to, ze byloby to 3 bity na mantyse i 4 na wykladnik, wiec powstalaby fascynujaca liczba ktora moglaby zawierac tylko cyfry 1-7 o 16 roznych wykladnikach. to by byl zart, a nie liczba zmiennoprzecinkowa.

    http://en.wikipedia.org/wiki/IEEE_754

    4\/3!!
  • REKLAMA
  • #3 5856258
    kli
    Poziom 13  
    Nie zgodzę się, że taki float byłby bez sensu. Załóżmy, że potrzebuję za pomocą floata zapisać i wykonywać np. dodawanie na określonych z góry liczbach ułamkowych (akurat ja potrzebuję tylko liczb:-1/8,-1/4,-1/2,0,1/2,1/4,1/8 ). Mam tablicę 100 takich elementów, więc deklarując float 4-bajtowy taka tablica zajmuje mi 400B zamiast 100B, a to spora różnica.
    Oczywiście jeśli mówisz, że się nie da, no to trudno.

    A powyżej przedstawione liczby można zapisać na floacie 8-bitowym, jeśli przyjmie się mantysę(M) 4-bitową i wykładnik(E) 3bitowy:
    
    M	E	Emin	Emax	Mmin	Mmax	xmin	xmax
    4	3	-3	   3	     1   1,875  0,125  15
    

    <-xmax; xmin> u <xmin;xmax> ->to zakres liczb przedstawianych przez taką reprezentację.

    http://pl.wikipedia.org/wiki/Liczba_zmiennoprzecinkowa
  • Pomocny post
    #4 5856268
    Dr.Vee
    VIP Zasłużony dla elektroda
    Potrzeba Ci liczby stałoprzecinkowej, a nie zmiennoprzecinkowej.

    Na chłopski rozum - wykonuj operacje na liczbach -1, -2, -4, 0, 4, 2, 1. Jeśli musisz wyświetlić wynik, to interpretuj go jako wynik/8.

    http://pl.wikipedia.org/wiki/Kod_stałopozycyjny
    http://en.wikipedia.org/wiki/Fixed-point_arithmetic
    http://en.wikipedia.org/wiki/Q_(number_format)

    Pozdrawiam,
    Dr.Vee
REKLAMA