有一些网站可以实现crc校验,但几乎均为国际标准没法修改,缺少自定义功能,在CSDN看到这篇文章的修改版,但我认为自定义功能仍然不完善,所以优化出一个二进制信息码,多项式不限的自定义CRC校验码程序。代码有参考这篇文章实现。原文看这里crc校验的python实现 - 简书crc(Cyclic Redundancy Check):循环冗余校验,是一种常用的查错校验码。本质是在要发送的信息后面附加一个校验码(均为二进制序列)。 实现步骤 选择合适...https://www.jianshu.com/p/8185e125afaf题目: 运行截图:
代码部分:
import numpy as np
message1 = input('请输入信息位:')
message = list(map(int, message1))
X = input('请依次输入多项式x次方数:')
X = list(map(int, X))
High = X[0]
print('输入的信息码为:', message)
print('多项式x次方为:', X)
# ————————————————————————————————————————输入完毕,开始计算
BIN = [0 for i in range(High + 1)]
for i in X:
BIN[i] = 1
BIN = BIN[::-1]
print('多项式二进制为:', BIN)
# ————————————————————————————————————————计算出多项式
Times = len(message)
# ————————————————————————————————————————循环次数
for i in range(High):
message.append(0)
# ————————————————————————————————————————左移补零
for i in range(Times):
if message[i] == 1:
for j in range(len(BIN)):
message[j + i] = message[j + i] ^ BIN[j]
# ———————————————————————————————————————计算位为1则开始异或
check_code = message[-High::]
# ———————————————————————————————————————余数为CRC编码
print('CRC校验码为:', check_code)