我有一个任务要做。我得到了很多数据,我的工作是解码它。我得到的每一件作品都是用可读的十六进制数字串写的。例如:“8a fd ff ff”
我试过 struct.unpack('<l', "8a fd ff ff")而且我也尝试了很多方法来解码,列出来太长了。我唯一知道的是,结果应该是 -630。 我不知道数据是如何转化为这种形式的。
data = "8a fd ff ff"
aa = np.array(list(data))
print(aa)
struct.unpack('<l', aa)
struct.error: unpack requires a buffer of 4 bytes
所以结果应该是-630。我使用在线十六进制解码器对其进行了测试。
请您参考如下方法:
找到第一个答案很好,但更直观、更容易记住的是下面的答案。鉴于您的所有数据都是以空格分隔的十六进制数字字符串给出的,您可以使用:
data = "8a fd ff ff"
bytes_data = bytes.fromhex( data.strip() )
struct.unpack("<l", bytes_data)
在这个例子中我们首先加载数据,删除所有的空格,转换为二进制十六进制表示并读出。输出如您所愿。
