Long int to int
tim at worthy.demon.co.uk
Mon Feb 11 11:40:32 CET 2002
I need to convert some long int values to normal ints.
(4 byte words)
(masked from a longer int e.g. 0xAA81234567L hence as a L)
b=int(a) works if a is less than 0x7ff..
If greater (i.e. 2's complement negative int) an error occurs.
I can convert by shifting bits, converting to int and shifting back.
a=int(a & 0xFFFF) | int(a>>16 & 0xFFFF)<<16
Is there not a neater, more correct way to go from
(Or worse, I can convert with eval
a = str(hex(a))[2:-1]
a = eval('0x'+a)
int (str(hex(a))[2:-1],16) fails.)
|im ---- ARM Powered ----
More information about the Python-list