如何解决Python 将 4 位十六进制合并为 3 位十六进制
我正在尝试从 Python 发送一些字节。我正在使用 struct.pack
来获取相应的发送字节。例如:
>>> struct.pack('BBBBBh',200,56,6,6)
'\xc8\x008\x06\x00\x00\x06\x00'
如果仔细观察,您会发现第二个字节(应该是 \x00
)已经与下一个字节(应该是 \x38
)合并了。
事实上,如果我尝试通过文本连接:
>>> '\x00' + '\x38'
'\x008'
同样的事情发生了。
我需要'\x00\x38'
。这可能吗?我是否遗漏了与格式或其他相关的内容?
解决方法
如果一个字节是一个可打印的字符,Python 将打印它而不是它的十六进制值。
0x38(十进制 56)是字符 '8'
的 ASCII code,因此 '\x00\x38'
打印为 '\x008'
。
如果要打印所有字节的十六进制值,则必须显式执行,例如:
print(['{:02x}'.format(b) for b in data])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。