On Fri, Jan 20, 2006 at 10:37:54PM +0100, Martijn van Oosterhout wrote: > Given that all it's doing is counting bits, a simple fix would be to > loop over bytes, use XOR and count ones. For extreme speedup create a > lookup table with 256 entries to give you the answer straight away... For extra obfscation: unsigned v = (unsigned)c; int num_bits = (v * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f; (More more-or-less intelligent options at http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetNaive :-) ) /* Steinar */ -- Homepage: http://www.sesse.net/