循环冗余检验[CRC]

循环冗余检验(CRC)是一种用于数据传输错误检测的散列函数,通过CRC生成多项式进行计算。本文介绍了CRC的工作原理,模二除法计算过程,以及C/C++的代码实现,探讨了CRC校验生成式的选择及其影响。最后列举了一些常见的CRC校验生成式。
摘要由CSDN通过智能技术生成

目录

简介

循环冗余校验(Cyclic redundancy check,统称“CRC”)是一种根据网络数据包或电脑文件等数据产生简短固定位数检验码的一种散列函数,主要用来检验或校验数据传输或者保存后可能出现的错误。

工作原理

循环冗余校验是利用CRC生成多项式,对原始信息进行处理,生成CRC校验码,将CRC校验码附加在原始信息之后一起发送出去,接收方接收到数据后,通过约定好的CRC生成多项式,对接收到的数据进行校验,判断数据在传输过程中是否出现错误。
CRC是基于有限域GF(2)(即除以2的同余)的多项式环。简单的来说,就是所有系数都为0或1(又叫做二进制)的多项式系数的集合,并且集合对于所有的代数操作都是封闭的。

为了便于理解,现在通过多项式的系数来表示数据。
假定:
原始信息:1011 0101
原始信息多项式:

M(x)=1x7+0x6+1x5+1x4+0x3+1x2+0x1+1x0 M ( x ) = 1 · x 7 + 0 · x 6 + 1 · x 5 + 1 · x 4 + 0 · x 3 + 1 · x 2 + 0 · x 1 + 1 · x 0

CRC-5校验生成式的多项式(5阶):

K(x)=x5+x2+x0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值