疑问:如何将16位二进制数据解包为高精度浮点数?(Python场景)
16位二进制转高精度浮点数的疑问
我手里有一份二进制格式的数据集,需要转换为十进制/浮点数。目前用Python实现时,通常用两种方法:要么用Python的struct模块,要么通过*位移位(bit shifting)和按位或(OR'ing)*操作。
举个例子,我有一个*小端序(little endian)*的两字节数组[67,1],执行以下代码:
print(struct.unpack('<H', bytes(byte_array))[0])
或者:
byte_array[1] << 8 | byte_array[0]
两种方式都能得到正确结果323。
但厂商提供的应用读取同一份原始数据时,数值表示却不同。比如其中第二个数值显示为-4.56,但我用上述代码得到的结果却是-5。我想知道,他们是如何将16位数值解包为高精度浮点数的?
内容的提问来源于stack exchange,提问作者jgauthier
相关产品推荐
相关产品推荐

