Bitwise OR?
Clemens Hepper
ethrandil at gmx.net
Sun Mar 26 18:10:42 EST 2006
Adam DePrince wrote:
>> BTW: Is there something like a sizeof() method for int numbers?
>
> import struct
> help( strict.calcsize )
Mh, that doesn't do what i want. I'd like to have something like:
def size(number):
return sizeof(number)
> Why one bit at a time?
Good question...
Here my new approach based on your idea:
_digits = { 0:"0000", 1:"1000", 2:"0100", 3:"1100",
4:"0010", 5:"1010", 6:"0110", 7:"1110",
8:"0001", 9:"1001", 0xa:"0101", 0xb:"1101",
0xc:"0011", 0xd:"1011", 0xe:"0111", 0xf:"1111"}
def bitstring2(number):
"""lsb------>msb"""
rlist = list()
if number >= 0:
while number:
rlist.append( _digits[number & 0xF] )
number >>= 4
else:
while number != -1:
rlist.append( _digits[number & 0xF] )
number >>= 4
return ''.join(rlist)
This was faster for positive numbers. For negative numbers yours was
faster, but my version handles those numbers different.
Your version fails for Large numbers since hex( long ) returns
something like "0xFFFL" instead of "0xfff".
> Cheers - Adam
Cheers :)
- eth
More information about the Python-list
mailing list