Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-08-08 20:42:23

  ponury_kostek - Użytkownik

ponury_kostek
Użytkownik
Skąd: Wałbrzych
Zarejestrowany: 2007-01-02
Serwis

Dzialania arytmetyczne z użyciem operatorów bitowych

Narazie rozkminilem dodawanie:

Kod:

function pk_sum($a, $b)
{
    do
    {
        $c = (($a & $b) << 0x01);
        $a = ($a ^ $b);
        $b = $c;
    } while ($c);
    return $a;
}

Jak ktos wie jak zrobic to szybciej i czy w ogole to jest szybsze niz "standardowe" dodawanie to niech sie pochwali swoja wiedza :)

PS. To jest jak widac kod PHP i fajnie by bylo gdybyscie podawali przyklady pod PHP :)

Offline

 

#2  2007-08-08 22:14:26

  0dd - Członek DUG

0dd
Członek DUG
Skąd: Kraków
Zarejestrowany: 2006-03-25

Re: Dzialania arytmetyczne z użyciem operatorów bitowych

mnozenie metoda "rosyjsch chlopow" (zwana tez "egipskich wiesniakow" badz "pruskich chlopow")

Kod:

  function mul($a, $b) {
        $c = 0;
        while($b) {
            if ($b % 2) $c = pk_sum($a, $c);
            $a = $a << 0x01;
            $b = $b >> 0x01;
        }
        return $c;
    }

dziala dla b nieujemnego!
nigdy nie pisalem w php wiec moze da sie uproscic


co do dodawania i jego efektywnosci:

dla procesorow CISC dodawanie jest 1 instukcja, jest szybkie, zoptymalizowane i moim zdaniem Twoje rozwiazanie nie bedzie efektywniejsze. na procesorach RISC dodawanie tez jest 1 instrukcja i tu na pewno Twoje rozwiazanie bedzie wolniejsze.

definiowanie w ten sposob operacji jest przydatne przy tworzeniu wlasnej arytmetyki operujacej np na duzych liczbach.


apt-get install anarchism

Offline

 

#3  2007-08-09 08:40:14

  ponury_kostek - Użytkownik

ponury_kostek
Użytkownik
Skąd: Wałbrzych
Zarejestrowany: 2007-01-02
Serwis

Re: Dzialania arytmetyczne z użyciem operatorów bitowych

Czyli ze moge spobie podarowac bo i tak "standardowe" operacje arytmetyczne sa szybciej realizowane niz taka zabawa z operatorami bitowymi :>
Dzieki Odd, czulem ze taki bedzie koniec tej zabawy ale nie spodziewalem sie ze tak szybko :P

Offline

 

#4  2007-08-09 08:44:10

  0dd - Członek DUG

0dd
Członek DUG
Skąd: Kraków
Zarejestrowany: 2006-03-25

Re: Dzialania arytmetyczne z użyciem operatorów bitowych

robimy dalej, teraz Twoja kolej robisz calkowanie bitowo  (:


apt-get install anarchism

Offline

 

#5  2007-08-12 17:37:45

  zimzum - Członek DUG

zimzum
Członek DUG
Zarejestrowany: 2006-09-04

Re: Dzialania arytmetyczne z użyciem operatorów bitowych

robimy dalej, teraz Twoja kolej robisz calkowanie bitowo  (:

Wystarczy wziac jakas kwadraturke (np. Simpsona) i wszystko sprowadza sie do mnozenia i dodawania. Jak juz sie umie dodawac, odejmowac, mnozyc i dzielic to juz wszystko mozna ;-)

Offline

 

#6  2007-08-12 22:51:25

  0dd - Członek DUG

0dd
Członek DUG
Skąd: Kraków
Zarejestrowany: 2006-03-25

Re: Dzialania arytmetyczne z użyciem operatorów bitowych

tylko ze nie mamy jeszcze mnozenia i dodawania dla liczb o zmiennym przecinku, a calkowanie na calkowitych jest troche niedokladne


apt-get install anarchism

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)