Splitting a float into bytes:

Michael Yanowitz m.yanowitz at kearfott.com
Wed Jul 26 15:14:38 EDT 2006


-----Original Message-----
From: python-list-bounces+m.yanowitz=kearfott.com at python.org
[mailto:python-list-bounces+m.yanowitz=kearfott.com at python.org]On Behalf
Of Simon Forman
Sent: Wednesday, July 26, 2006 2:56 PM
To: python-list at python.org
Subject: Re: Splitting a float into bytes:


Michael Yanowitz wrote:
> Hello:
>
>   For some reason I can't figure out how to split
> a 4-byte (for instance) float number (such as 3.14159265359)
> into its 4-bytes so I can send it via a socket to another
> computer.
>   For integers, it is easy, I can get the 4 bytes by anding like:
> byte1 = int_val & 0x000000FF
> byte2 = int_val & 0x0000FF00
> byte3 = int_val & 0x00FF0000
> byte4 = int_val & 0xFF000000
>   But if I try to do that with floats I get:
> >>> pi & 0xFF
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> TypeError: unsupported operand type(s) for &: 'float' and 'int'
>
>   Is there some easy way to get what the bytes of the float are?
>
> Thanks in advance:
> Michael Yanowitz

The struct module.  (It also works for ints. ;-)  )

http://docs.python.org/lib/module-struct.html


HTH,
~Simon

   Thanks, but maybe I am missing something.
If I use pack, doesn't it have to be unpacked at the other end
to make sense? The data will be picked up on some other computer
by some other application probably written in C or C++. Would
it have to be rewritten to unpack the data?

Thanks in advance:
Michael Yanowitz 





More information about the Python-list mailing list