
Rockbox mail archiveSubject: Re: mathRe: math
From: Dave Wiard <lists_at_wiard.net>
Date: Wed, 06 Jul 2005 13:06:25 0700 Ray Lambert wrote: > BlueChip wrote: > >> while (x>0) r = (r<<3)+(r<<1); // r*8 + r*2 >> ^whoops >> >> what values of 'x' ? all positive? include 0? >> >> if (x<0) return(0); // cannot handle negative values of x >> if (x>9) return(1); // result will be > (2^32)1 >> unsigned long r = 1; >> while (x>0) r = (r<<4)+(r<<1); // r*8 + r*2 >> return (r); > > It might be a good idea to decrement x at some point too.... :) > >> while (x>0) r = (r<<3)+(r<<1); // r*8 + r*2 > > perhaps: > > for (; x>0; x) r = (r<<3)+(r<<1); // r*8 + r*2 > > ~ray And catch x=0. And set your base at 10 not 1 (remember, this is exp10). if (x == 0) return 1; // 10^0 is always 1 if (x < 0) return 0; // cannot handle negative values of x if (x > 9) return 1; // result will be > (2^32)1 unsigned long r = 10; while (x) r = (r << 3) + (r << 1); // r*8 + r*2 return r; Dave _______________________________________________ http://cool.haxx.se/mailman/listinfo/rockbox Received on 20050706 Page was last modified "Mon Nov 16 10:57:21 2020" The Rockbox Crew  Privacy Policy 