dzielenie przez 3

Oct 05, 2005 10 Replies

Witam.



Czy jest jaki¶ sposób "sprytnego" dzielenia liczby np: jednobajtowej prze 3? Co¶ takiego jak przez 2 przesunêcie w prawo o jedn± pozycjê.



Chodzi o to ¿eby podzieliæ nie u¿ywaj±c mno¿enia i dzielenia.



Dziêkujê za pomoc Pawe³



tzn jak sprytnie? a co zrobisz z wynikiem w ktorym bedzie ulamek?

No w³a¶nie jak przez 2 to sprawdzalem falgê przeniesienia a tu nie bardzo.

Pawe³

Ano jest - pomnozyc przez 0,33 czyli x*(1/4+1/16+1/64+1/256). A to juz mozesz zrobic za pomoca prostych przesuniec.

z zasady przesuwanie ma sens tylko przy wielokrotnosci 2... raczej nie sprawdzi sie przy dzieleniu przez 3. (z tym 0,5 - to ja chyba jeszcze zaspany jestem, oczywiscie ze odrzucasz czesc ulamkowa, przepraszam ze sie odezwalem)

U¿ytkownik "Pawe³" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:di03ti$208$ snipped-for-privacy@news2.onet...

Jasne :)) Odejmuj 3 i licz ile razy da siê to zrobiæ. pozdrawiam, Andrzej.

Hm, przemnozyc przez 85 i podzielic przez 256 ?

A to mnozenie to 4 dodawania. Jak sie uprzec to nawet nie trzeba na 16 bitach liczyc ..

J.

Te¿ tak my¶la³em. Fakt jest to chyba najprostrza metoda która od razu siê nasuwa, ale ma tê wadê ¿e d³ugo¶æ obliczeñ zale¿y od warto¶ci zmiennej.

Pozdrawiam Pawe³

U¿ytkownik "Pawe³" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:di0e0u$sg1$ snipped-for-privacy@news2.onet...

co przy 1-bajtowej liczbie nie powinno mocno rzutowac ...

@

Paweł napisał(a):

stablicuj to, będzie 256 wartości, porównujesz liczbę według sortowania i masz wynik.

Szczegolnie ze na poczatku mozna odejmowac np 30.

J.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required