Question

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!

Était-ce utile?

La solution

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

Autres conseils

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top