Вопрос

I have a serie of hexidecimal bytes:

0x81 0x12 0xC0 0x00 0x01 0x05

I need to calculate the CRC 16 of this. An online calcultor gives me:

0x81 0x53 //correct

I use the crcmod python module as follows:

crc16 = crcmod.predefined.mkCrcFun('crc-16')

print crc16('123456789') # works well

print hex(crc16('\x81\x12\xC0\x00\x01\x05')) #EDIT : works aswell!

How can i represent this hexidecimal serie as an ascii string (which the function requieres )

Thank you!

Это было полезно?

Решение

use '\x81\x12\xC0\x00\x01\x05'

Другие советы

If you can freely edit your stuff, Marcus is right, otherwise (e.g. if you have your bytes already somewhere in your program), do

values = [0x81, 0x12, 0xC0, 0x00, 0x01, 0x05]
string = "".join(chr(i) for i in values)
print crc16(string)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top