Am 25.10.12 16:47, schrieb Charles Hixson:
In Python3 is there any good way to count the number of on bits in an
integer (after an & operation)?
Alternatively, is there any VERY light-weight implementation of a bit
set? I'd prefer to use integers, as I'm probably going to need
thousands of these, if the tests work out. But before I can test, I
need a decent bit counter. (shift, xor, &, and | are already present
for integer values, but I also need to count the number of "true" items
after the logical operation. So if a bitset is the correct approach,
I'll need it to implement those operations, or their equivalents in
terms of union and intersection.)
Or do I need to drop into C for this?
There is a very geeky algorithm with only a few integer operations.
Checkout
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSet64
for a C version. Maybe the same thing is equally fast when ported to
Python.
Christian
--
http://mail.python.org/mailman/listinfo/python-list