32 bitowe dzielenie calkowite

Apr 13, 2005 8 Replies

Witam, od paru dni zastanawiam sie jak to szybko wykonac na procku nie posiadajacym instrukcji dzielenia, konkretnie PIC 18F, ktory chyba jeden z niewielu z tej rodziny ma przynajmniej mnozenie dwoch 8 bitowych liczb. Kombinowalem ze zwyklym dzieleniem na kartce, tyle, ze na bitach i wlasciwie zrobilbym to, jednak chcialbym sie wczesniej upewnic, czy nie istnieje jakis szybszy sposob. Chodzi mi glownie o idee, chociaz jesli ktos dysponuje jakims kodem, to byloby jeszcze lepiej. W ksiazkach o mikrokontrolerach ktore posiadam o autorzy nawet nie wspominaja nic na ten temat.



pozdrawiam DP


"Dawid Pawlata" snipped-for-privacy@wp.pl napisa³(a):

formatting link

Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem, myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe instrukcje PIC 18, poza tym nie ma tam 32/32.

W kazdym razie dzieki.

Na microchip.com jest. Może da się zastąpić to dzielenie mnożeniem przez odwrotnosć? czasem daje się coś uprościć i mnozyć zamiast dzielić

Len z ciebie. A szybciej niz przesuwac bity i odejmowac to sie nie da. Tu masz link:

formatting link

Niestety raczej nie, poniewaz nie znam argumentow, moga byc dowolne. Poza tym ta sa liczby calkowite.

Dzieki, tej stronki nie widzialem. Chociaz metoda jest wlasciwie taka sama. W koncu dzielenie na kartce sprowadza sie wlasnie do przesuwania i odejmowania. W kazdym razie jest gotowy kod!

Dzieki

Do liczenia odwrotnosci modulo liczba calkowita masz rozszerzony algorytm euklidesa. Powinno sie go dac latwo zaimplementowac, choc wydajnosciowo moze to nie byc najlepszy pomysl

pzdr. j.

No to musi procek liczyć. Na marginesie, całkowitość liczb niczego nie zmienia prawie, FLOAT32 nie różni się prawie niczym od dzielenia 24/24 i 32/32 z tym tylko że dochodzi wykładnik i malutkie manewry z mantysą i wyjątkami.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required