Convert Bytes to Floating Point Numbers?

前端 未结 2 1168
野趣味
野趣味 2020-11-29 02:22

I have a binary file that I have to parse and I\'m using Python. Is there a way to take 4 bytes and convert it to a single precision floating point number?

相关标签:
2条回答
  • 2020-11-29 03:01
    >>> import struct
    >>> struct.pack('f', 3.141592654)
    b'\xdb\x0fI@'
    >>> struct.unpack('f', b'\xdb\x0fI@')
    (3.1415927410125732,)
    >>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0)
    '\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@'
    
    0 讨论(0)
  • 2020-11-29 03:16

    Just a little addition, if you want a float number as output from the unpack method instead of a tuple just write

    >>> [x] = struct.unpack('f', b'\xdb\x0fI@')
    >>> x
    3.1415927410125732
    

    If you have more floats then just write

    >>> [x,y] = struct.unpack('ff', b'\xdb\x0fI@\x0b\x01I4')
    >>> x
    3.1415927410125732
    >>> y
    1.8719963179592014e-07
    >>> 
    
    0 讨论(0)
提交回复
热议问题