Python—CRC校验码,计算2进制校验数据的校验码

        有一些网站可以实现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)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值