how to get the thighest bit position in big integers?
Aaron "Castironpi" Brady
castironpi at gmail.com
Sun Oct 5 15:12:00 EDT 2008
Duncan Booth wrote:
> mmgarvey at gmx.de wrote:
>
>> My question to the group: Does anyone know of a non-hackish way to
>> determine the required bit position in python? I know that my two
>> ideas
>> can be combined to get something working. But is there a *better* way,
>> that isn't that hackish?
>>
> How about using the hex representation of the value?
>
> OFFSET = dict(("%x"%i, int(c)) for i,c in enumerate("5433222211111111"))
> def get_highest_bit_num(r):
> s = "%x"%r
> return len(s) * 4 - OFFSET[s[0]]
> --
> http://mail.python.org/mailman/listinfo/python-list
>
You can replace the dict if it's faster.
OFFSET= tuple( int(x) for x in "5433222211111111" )
def get_highest_bit_num(r):
s = "%x"%r
return len(s) * 4 - OFFSET[int(s[0],16)]
P.S. Back home, this sort of 'nitpicking' would be judged
unconstructive. Worth pointing out, or not worth saying?
P.S.S. 'Thighest' bit? I thought the spam filters would catch that.
More information about the Python-list
mailing list