wskaznik do funkcji

Mar 15, 2005 25 Replies

Poszukać algorytmu w Sieci (np. russian peasant algorithm) lub jakiejś książce, np. w "Algorytmy + struktury danych = programy" Wirtha coś tam jest. Pouczające może być samodzielne wymyślenie algorytmu takiego dzielenia wykorzystujac mnożenie i dzielenie przez 2 (czyli przesuwanie bitów).

Regards, /J.D.

Ale tu nie ma takiej potrzeby - akurat '51 pieknie mnozy i dzieli przez 8 bit. Trzeba tylko zastosowac przeniesienia na kolejne bajty .

J.

[.....]

Nie pamiętam ile cykli zajmuje dzielenie w 51, ale nie jest wcale takie oczywiste że dzielenie (liczby kilkubajtowej) przy użyciu dzielenia :-) bedzie szybsze niż dzielenie z użyciem shift-ów i odejmowania.

Regrds, /J.D.

U¿ytkownik "Jan Dubiec" snipped-for-privacy@SPAMTRAP.slackware.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@hs001.slackware.pl...

51 potrzebuje dwóch cykli do podzielenia 8bitowych. Zaraz zaczynam sie bawic w jakis algorytmik :) jak sie uda oczywyiscie napisze

ynio

IMHO - byloby szybsze. Tylko ze pomylilem - zapomnialem ze to dzieli tylko 8b/8b - a nie 16/8

- czyli nie da sie uzyc :-(

Ale mnozy ladnie.

J.

Moze nie popisalem sie jakos super ale rozbilem dzielenie longa przez char, na dwa dzielenia 16 bitowych i sumowanie. Analizujac wyszlo :

metoda dzielenie klasyczna typu long/long 1440 us, moja 960 us

Przy czym rozbicie zaoszczedzilo ok 150-200 bajtow pamieci :)

Kiedys czytajac ksiazki o starych kompach, programowaniu optymalizacji zeby jak najmniej kodu sie smialem, nie sadzilem ze bede robil to samo :) Zeby tworcy gierek i innych tez tak podchodzili :)

Pozdr ynio

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required