使用python生成crc对照表

本文介绍如何使用Python解决CRC校验中的换行问题,通过CalCulateCrc函数计算CRC值,并创建对照表,适用于嵌入式项目中的查表法验证。涉及多项式计算、BigEndian转换和print函数调整。
摘要由CSDN通过智能技术生成
#解决print函数自带的换行效果
from __future__ import print_function

#data : 0-255
#poly : 多项式
#BigFirst : 大小端,1:高位在前,0:高位在后
def CalCulateCrc(data, poly, BigFirst):
    crc = 0
    crc ^= data
    if BigFirst == 1:
        for i in range(0, 8):
            if crc & 0x80 == 0x80:

                crc = (crc << 1) ^ poly
            else:
                crc <<= 1
    if BigFirst == 0:
        for i in range(0, 8):
            if crc & 0x01:
                crc = (crc >> 1) ^ poly
            else:
                crc = (crc >> 1)

    return crc

#调用CalCulateCrc在控制台打印出对照表
def CreatTable():
    a = range(256)

    for i in range(0, 256):
        crc1 = (CalCulateCrc(i, 0x1D, 1)) & 0xff
        a[i] = crc1

    print("{")
    for j in range(0, 256):

        print("%#.2X" % a[j], end=', ')
        if(j + 1) % 16 == 0:
            print()
    print("};")


CreatTable()

在嵌入式的项目中经常碰到CRC校验的功能,多数的时候都是使用查表法进行CRC校验,查表法的表只和多项式的值有关系,因此可以使用通用的程序将表格产生出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值