Paweł
Guest
Wed Oct 05, 2005 7:34 am
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ł
PAndy
Guest
Wed Oct 05, 2005 7:57 am
"Paweł" wrote in message
Quote:
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.
tzn jak sprytnie? a co zrobisz z wynikiem w ktorym bedzie ulamek?
Paweł
Guest
Wed Oct 05, 2005 8:20 am
Quote:
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ł
T.M.F.
Guest
Wed Oct 05, 2005 8:39 am
Paweł wrote:
Quote:
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.
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.
PAndy
Guest
Wed Oct 05, 2005 8:47 am
"Paweł" wrote in message
Quote:
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.
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)
Andrzej
Guest
Wed Oct 05, 2005 9:30 am
Użytkownik "Paweł" napisał w wiadomości
Quote:
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ę.
Jasne

)
Odejmuj 3 i licz ile razy da się to zrobić.
pozdrawiam,
Andrzej.
J.F.
Guest
Wed Oct 05, 2005 10:13 am
On Wed, 5 Oct 2005 10:34:27 +0200, Paweł wrote:
Quote:
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.
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.
Paweł
Guest
Wed Oct 05, 2005 10:26 am
Quote:
Odejmuj 3 i licz ile razy da się to zrobić.
pozdrawiam,
Andrzej.
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ł
Miller Artur
Guest
Wed Oct 05, 2005 10:48 am
Użytkownik "Paweł" napisał w wiadomości
Quote:
Odejmuj 3 i licz ile razy da się to zrobić.
pozdrawiam,
Andrzej.
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.
co przy 1-bajtowej liczbie nie powinno mocno rzutowac ...
@
J.F.
Guest
Wed Oct 05, 2005 1:50 pm
On Wed, 5 Oct 2005 13:48:55 +0200, Miller Artur wrote:
Quote:
Użytkownik "Paweł" napisał w wiadomości
Odejmuj 3 i licz ile razy da się to zrobić.
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.
co przy 1-bajtowej liczbie nie powinno mocno rzutowac ...
Szczegolnie ze na poczatku mozna odejmowac np 30.
J.
szlovak
Guest
Wed Oct 05, 2005 3:05 pm
Paweł napisał(a):
Quote:
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ł
stablicuj to, będzie 256 wartości, porównujesz liczbę według sortowania
i masz wynik.
--
Pozdrawiam
Adam