将十六进制转换为IEEE 754格式

4

如果我使用http://www.h-schmidt.net/FloatConverter/IEEE754.html 这样的网站将十六进制字符串'424E4B31'转换成float32,得到的结果是51.57343。

但我需要使用Python进行转换,然而在StackExchange上找到的解决方案如下:

import struct, binascii
hexbytes = b"\x42\x4E\x4B\x31"
struct.unpack('<f',hexbytes)

或者
struct.unpack('f', binascii.unhexlify('424E4B31'))

我得到的是2.9584e-09...为什么与之前不同?
1个回答

6
由于字节序(endianness)是一种东西,所以我们需要考虑它。
>>> struct.unpack('>f',hexbytes)
(51.573429107666016,)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接