Kazdy algoritmus sa da rozvinut napr. keby som mal v slucke sucetbitov += daj bit, tak urobim daj bajt a urobim nejake operacie rovno s tym bajtom, aj ked to je komplikovane tak sa to da na papieri rozvinut a spojit operacie dokopy. Alebo si nieco predpocitam napr. pre ten sucet bitov by som si predpocital hodnoty pre vsetkych 256 moznych hodnot bajtu a urobil sucetbitov+=predpocitane[daj_bajt()] apod. Zrychlenie 100 nasobne.
Optimalizacia je velmi fajnova a tvoriva vec, ked sa budes kukat len na algoritmus tak jak je definovany, tak hovno zoptimalizujes.
P.S> a nerobil by som dajbajt ale drzal si rovno pointer a namiesto dajbajt by bolo *pointer++
... alebo dajbajt a napisat za sebou 8x to same, alebo alebo alebo...