Python: 将整型、十六进制或二进制转换为浮点数
我有一个Modbus的响应值:16736。我可以把它转换成十六进制和二进制:
十六进制:0x41600000
二进制:0b100000101100000
我需要把这个Modbus的响应值转换成浮点数,结果应该是14.0。如果我去这个网站:http://gregstoll.dyndns.org/~gregstoll/floattohex/,可以看到0x41600000转换成14.0。
我尝试了各种方法来用struct.unpack进行转换,但就是得不到14.0。(在我决定再发一个转换问题之前,我已经看了很多Stackoverflow上的帖子,但我还是不太明白这是怎么回事)
我漏掉了什么呢?非常感谢。
1 个回答
5
你有一个单精度浮点数,它是以大端字节顺序存储的:
response = '\x41\x60\x00\x00'
struct.unpack('>f', response)
示例:
>>> import struct
>>> struct.unpack('>f', '\x41\x60\x00\x00')
(14.0,)