2009/2/5 Duncan Booth <duncan.bo...@invalid.invalid>: > Mark Dickinson <dicki...@gmail.com> wrote: > >> def count_set_bits(n): >> # make sure we include an if, to >> # satisfy OP's requirements: >> if n < 0: >> raise ValueError >> count = 0 >> while n: >> count += 1 >> n &= n-1 >> return count >> >> is_even = count_set_bits(the_int) % 2 == 0 >> >> ...but anyone submitting this as a homework >> solution had better be prepared to explain why >> it works. >> > > I remember a programming exercise when I was an undergraduate and anyone > who *didn't* use that trick got marked down for writing inefficient code.
Is adding and a modulus *really^ more efficient than flipping a bool as I suggested? I think I'd want to see measurements! -- Tim Rowe -- http://mail.python.org/mailman/listinfo/python-list