如何解码此小端(int32)消息?

初学者

我有任务要做 我得到很多数据,我的工作是解码它。我得到的每一部分都以可读的十六进制数字字符串编写。例如:“ 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:解压缩需要4个字节的缓冲区

因此结果应为-630。我使用在线十六进制解码器对其进行了测试。

TheCoolDrop

找到第一个答案很好,但是更直观,更容易记住。鉴于所有数据均以空格分隔的十六进制数字字符串形式提供,您可以使用:

data = "8a fd ff ff"
bytes_data = bytes.fromhex( data.strip() ) 
struct.unpack("<l", bytes_data)

在此示例中,我们首先加载数据,删除所有空格,转换为二进制十六进制表示形式并将其读出。输出与您期望的一样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章