eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaoperacje na liczbach całkowitych a dokładność › Re: operacje na liczbach całkowitych a dokładność
  • Data: 2012-09-19 20:33:02
    Temat: Re: operacje na liczbach całkowitych a dokładność
    Od: "J.F" <j...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Użytkownik "Jakub Rakus" napisał w wiadomości grup
    >Mam liczbę całkowitą która maksymalnie osiąga wartość 2^13, ale muszę
    >ją
    >pomnożyć przez niecałkowity współczynnik, który będzie wynosił około
    >0,3.
    >Zmienne wykorzystywane w obliczeniach są 16 bitowe (nie mam tyle mocy
    >obliczeniowej żeby przejść na liczby zmiennoprzecinkowe). Ponieważ
    >0,3 to to
    >samo co 3/10, to mogę sobie rozbić moje działanie na mnożenie przez 3
    >i
    >dzielenie bez reszty przez 10.

    >Pytanie - jaka kolejność zapewnia większą dokładność? Najpierw mnożyć
    >czy
    >lepiej najpierw dzielić?

    Chyba nie masz watpliwosci, ze np 4/10 = 0, 0*3= 0 ?

    >Co w przypadku gdy mój współczynnik wyniesie np.
    >0,32 - wykonanie jako pierwszego mnożenia przez 32 (a potem dzielenia
    >przez
    >100) da mi pośredni wynik większy niż zakres mojej 16-bitowej
    >zmiennej.

    O to to to :-)

    Jesli masz dostep do assemblera/ukladu mnozacego, to nie mnozysz przez
    0.32, ale np przez 20972.
    Tylko ze robisz mnozenie z wynikiem 32-bit, z ktorego wybierasz dalej
    tylko starsze slowo.
    Bo 65536*0.32=20971.52

    jesli te wspolczynniki sa tego rzedu, to mozesz rozlozyc
    0.32=0.0101001...b
    a wiec x*0.32 = x>>2 + x>>4 + x>>7 ...

    J.







Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: