IEEE 754 floats
Peter Otten
__peter__ at web.de
Tue Sep 14 10:07:33 EDT 2004
Dale Huffman wrote:
> Is there a simple way to convert an IEEE-754 floating point ascii
> string ( "0x40400000" = 3.0, 32bit ) into a float variable, without
> writing a function to do the math. I have transferred this across a
> network from a device I have no contol over and it sends all data as a
> string. Everything I have tried just converts from hex to decimal and
> adds a decimal point and a zero.
>
> string.atof("0x40400000") returns 1077936128.0
>
> In case I'm not explaining clearly, what I'm looking for could be
> coded in C as follows:
>
> int a = 0x40400000;
> float *ap = (float *)&a;
>
> float myFloat = *ap;
>
> Sorry if the C offeded anyone in the Py crowd but I'm new to Python
> and so far it rocks - I just don't have the basics down yet.
>>> struct.unpack("f", struct.pack("l", int("0x40400000", 16)))[0]
3.0
There may be simpler ways, though.
Peter
More information about the Python-list
mailing list