我提供了我的python代码片段,我需要转换用HEX编写的命令转换为字节,以便它们可以通过串行发送。但是对于某些HEX值,我的转换模糊不清。通常如下:
command = '0200C00903C9'
print (bytes.fromhex(command)
给出输出:
output: b'\x02\x00\xc0\t\x03\xc9'
然而,下面给出了模棱两可的结果:
c_1 = '02030002'
c_2 = '03062000'
c_3 = '01110334'
command = c_1 + c_2 + c_3
print(bytes.fromhex(command))
给出:
output: b'\x02\x03\x00\x02\x03\x06 \x00\x01\x11\x034'
忽略对应于SPACE(ASCII代码:20)的空格。但输出应该是以下形式:
output: b'\x02\x03\x00\x02\x03\x06 \x00\x01\x11\x03\x34'
奇怪的是,如果我这样做:
c_1 = '02030002'
c_2 = '03062000'
c_3 = '0111033434'
command = c_1 + c_2 + c_3
print(bytes.fromhex(command))
它再次给出了一个模糊的转换:
output: b'\x02\x03\x00\x02\x03\x06 \x00\x01\x11\x0344'
这种趋势仍在继续。为什么它错过了'03'之后的3'?