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ść
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.internetia.pl!opal.futuro.pl!szmaragd.futuro.pl!newsf
    eed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!ne
    ws.neostrada.pl.POSTED!not-for-mail
    From: "J.F" <j...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    References: <k3cv72$2hn$1@node1.news.atman.pl>
    In-Reply-To: <k3cv72$2hn$1@node1.news.atman.pl>
    Subject: Re: operacje na liczbach całkowitych a dokładność
    Date: Wed, 19 Sep 2012 20:33:02 +0200
    MIME-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    X-Newsreader: Microsoft Windows Live Mail 15.4.3555.308
    X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3555.308
    Lines: 44
    Message-ID: <505a0fe2$0$1231$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.5.204.246
    X-Trace: 1348079586 unt-rea-b-01.news.neostrada.pl 1231 83.5.204.246:51180
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:635759
    [ ukryj 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: