我需要计算二进制文件的CRC校验和。这个文件也包含CRC,通过比较,我发现文件什么时候损坏了。
Bin文件类似于长十六进制字符串
00200020 595A0008 ......
但文件中的CRC是按整数(4.byte little Endian)计算的,如下所示
1.int - 0x20002000
2.int - 0x8000A559
在python中,如何在不切换字节的情况下获得相同的结果?我尝试了http://www.tty1.net/pycrc/并使用了reflect in,但是我没有得到同样的结果。
这两个字节是正确的crc 0xEF2B32F8
发布于 2011-07-06 23:51:46
尝试使用struct模块。您可以打开一个文件,并使用解包,读取任何格式的数据,你想要的任何字节顺序。
发布于 2018-06-02 03:03:41
我写了以下计算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
https://stackoverflow.com/questions/6599045
复制相似问题