On 6 Okt., 10:37, Mark Dickinson <[EMAIL PROTECTED]> wrote: > See alsohttp://bugs.python.org/issue3439 > where there's a proposal to expose the _PyLong_NumBits method. This > would give an O(1) solution. Doesn't that depend on the underlying implementation?
Anyway, here's a pretty one (I think): def highest_bit(n, maxbits = 256): bit = 0 while maxbits > 1: maxbits = maxbits >> 1 mask_b = ((1<<maxbits)-1) mask_a = mask_b<<maxbits a = n & mask_a b = n & mask_b if a: bit = bit + maxbits n = a >> maxbits else: n = b return bit I suspect you would call that a O(logn)) solution Holger -- http://mail.python.org/mailman/listinfo/python-list