在 python3 中插入'x'



我正在尝试正确使用crcmod,但我遇到了问题:例如,我想将字符串"1234567809"转换为字节b'x12x34x56x78x09',以便获得正确的crc16-modbus代码。

import crcmod
crc16 = crcmod.mkCrcFun(0x18005, rev=True, initCrc=0xffff)
for i in range(len(a)//2):
a = a[:(i*4)] + r"x" + a[i*4:]

问题是r"x"插入'\x'而不是'x',并且CCD_ 6当然返回错误。

a.encode("utf-8")

当然返回CCD_ 7。

这是\x:的结果

hex(crc16(a.encode("utf-8")))
'0x68b7'

这就是我所期望的结果:

hex(crc16(b'x12x34x56x78x09'))
'0x2590'

您可以直接将字符串'1234567809'转换为所需的字节数:

source = '1234567809'
a = bytes.fromhex(source)

现在crc应该工作了:

hex(crc16(a))

相关内容

  • 没有找到相关文章

最新更新