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!

Was it helpful?

Solution

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

OTHER TIPS

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)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top