简单易懂的CRC手算直观演示

CRC校验是一种用于检测数据传输错误的方法。发送端根据信息字段和生成多项式计算CRC码,并附加到数据中一起发送。接收端通过模2除法检查CRC码,若余数为0,则数据正确。计算过程包括多项式展开、数据补0、按位异或等步骤,确保校验和长度与添加的0数量相等。
摘要由CSDN通过智能技术生成

一、CRC校验原理

  • 发送端:发送端根据信息字段与生成多项式生产呢个CRC码,CRC码作为数据发送给接收端,同时也会把计算出的校验字段的数据一同发送(注:目的是如果接受端检测到发送的数据是正确的,接收端能够从CRC码中提取出信息字段的数据)。

  • 接收端:接收到CRC码数据后,检测接收到的数据是否正确,方法:将CRC码数据与生成多项式进行模2除,如果余数为0,则说明接收到的数据是正确的。然后,从CRC码中提取出信息字段的数据。
    二、CRC计算过程演示
    第一步:展开多项式,得到除数(参照常用的CRC多项式模型)
    例如多项式 x6+x4+x2+x+1 ,即 1x6+0x5+1x4+0x3+1x2+1x+1
    得到除数:1010111
    第二步:在原来的数据末尾加0,多项式有几阶就加多少零,该多项式的阶数为6
    原始数据: 1101011011
    补0之后的数据:1101011011000000
    第三步:按位异或
    将数据串第一个1与除数左对齐,按位进行异或(相同得0,不同得1)操作,将未处理的数据搬下来作为新字符串,重复操作,直到所有数据都处理过为止。
    在这里插入图片描述所得到的结果即使CRC校验和(长度为除数-1)
    原始数据:1101011011
    除数:1010111
    带有CRC校验的数据1101011011111011
    若最后得到的CRC校验有效位数较少的时候,例如000011,不要忽略前面的0.所拼接的校验和长度应于之前加0的个数相等。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值