V nejhorsim (musim ale mit taky operaci porovnani):
odecitam a - b (predpokaldam ze a > b)
p1=b, p2=0
while p1 > a : p1++, p2++
return p2
Da se to asi zrychlit tak ze si pripravim mocniny dvojky a budu je zkouset pricitat od nejvetsi (tj. pro kazdy bit otestuju jestli ma ve vysledku byt nastaveny), ve stylu
p1=b, p2=0
...
if p1+256 <= a: p1+=256, p2+=256
if p1+128 <= a: p1+=128, p2+=128
...
if p1+1 <=a: p1+=1, p2+=1
return p2
A podobne se da udelat deleni kdyz znam jenom nasobeni (a scitani),
odmocnovani kdyz znam jenom umocnovani (a nasoveni a scitani)
i vsechny dalsi inverze sipkovych operatoru