开发者

CRC in python, little Endian

I need to calc CRC checksumme of binary file. This file content CRC too and by comparing I find out when file was corrupted.

Bin file is something like long hex string

00200020 595A0008 ......

But CRC in file was calculated per integer(4.byte little Endian) like this

1.int -  0x20002000
2.int -  0x80开发者_JAVA百科00A559

How can I get the same result without switching bytes in python? I was trying http://www.tty1.net/pycrc/ and played with reflect in, but I dont get the same result.

For this two bytes is correct crc 0xEF2B32F8


Try using the struct module. You can open a file and use the unpack read the data in any format you want with any Endianess.


I have written the following code for calculating crc8:

acklist = [] # a list of your byte string data
x = 0xff
    crc = 0
    for i in range(len(acklist)):
        crc += int(acklist[i], 16) & x

print(crc)

crc = ~crc
crc += 1

crc1 = crc >> 8 & x
crc2 = crc & x
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜