如何解决无法将字符串转换为字节
我正在尝试将字符串转换为字节,这就是我所做的。
我想通过串行发送一个 Modbus 协议并将其放在位串中:
tiger = '01'
read = '03'
ac_val = '0031'
word = '0002'
code = tiger+read+ac_val+word
print(code)
010300310002
#now i want to put thist string in a bitstring with the function:
codeh = bytes.fromhex(code)
codeh = b'\x01\x03\x001\x00\x02 #This is what i got
但我期待:
codeh = b'\x01\x03\x00\x31\x00\x02
我不知道为什么输出是这样的。
解决方法
它在输出中显示的是字节值的 ASCII 表示。十六进制 31 对应于 ascii 字符“1”。试试看演示:
bytes.fromhex('415343494921')
以下图表显示了这些低值:https://en.wikipedia.org/wiki/ASCII#Control_code_chart
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。