最好懂的CRC校验规则讲解

前言

  • CRC校验的原理非常复杂,但是用起来却很简单,甚至别人写好了函数,直接拿来调用即可,但是我们还是需要了解一点这个校验码是如何计算得来的
  • 网上的教程一大堆,但是很多讲的太深入,让人看的云里雾里,不明所以,所以我才想写一个高中生都能看懂的,不那么深入的,专注于应用的,通俗易懂的CRC校验的解释

何为校验

比如我写了一封电子邮件给你,它是用二进制写的,比如说是1010 1010

当你收到的时候,发现信息是1010 1011

很明显最后一位被篡改了,但是你如何知道接收的信息是否有问题呢,这就需要校验机制

使用校验机制的结果,就是在要发送的数据之后,再接着发一串校验码

在串口通信中用的最多的就是奇偶校验,所谓奇偶校验,其实是两种校验方式,一种叫奇校验,一种叫偶校验,它们有什么区别呢

  • 奇校验:要发送的二进制数据中,保证1的个数为奇数,如果有效信息有偶数个1,则校验位为1
  • 偶校验:要发送的二进制数据中,保证1的个数为偶数,如果有效信息有奇数个1,则校验位为1

如果刚刚我要发的电子邮件,采用偶校验,那么1010 1010中1的个数为4,是偶数,所以最后校验位是0,所以最终发送出去的数据是1010 1010 0

CRC校验也是如此,它会在原始数据的末尾,再加上一串校验位,这串校验位是利用原始数据,通过固定的算法计算得到的,发送方和接收方,都遵循同样的算法,如果传输过程无误,接收方收到的信息没有被篡改,则接收方可以利用这个算法,计算出校验码,再去跟发送方的校验码进行比较,相同的话则认为接收的数据没有问题(你可以这样去理解,但是实际它不是这样做的)

如何生成CRC校验码

还是上面的例子,要发送的信息为1010 1010,十六进制为0xAA

采用CRC-4/ITU校验,校验码长度4位

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值