CRC 循环冗余校验码 的计算方法

   循环冗余校验CRC(Cyclical Redundancy Check)字段位于尾部,有32位,有时称为IEEE/ANSI标准的CRC32.要使用一个n位CRC监测
数据传输错误,被检查的消息首先要追加n位0形成一个扩展消息(使用模2除法)除以一个n+1位的值,这个作为出书的纸称为生成>多项式。放置在消息的CRC字段的值是这次处罚计算中的余数的二进制反码(商被丢弃)。生成多项式是33位的二进制数100000100110000010001110110110111
   为了理解如何使用模2除法(mod 2),我么来看一个CRC4(n=4)的例子。国际电信联盟将CRC4的生成多项式标准化为10011(n+1=4+1=5位),如果我们要发送16位的消息100111000101111,首先开始进行图中的mod 2二进制除法
这个除法的余数是4位的1111,通常,该余数的反码0000将放置在帧的CRC或帧校验序列FCS字段中。在接收到数据后,接收方执行相同的除法计算出余数,并判断FCS字段的值是否匹配,如果两者不匹配,真可能在传输过程中受损,通常被丢弃,CRC功能可用于提示信息受损,因为位模式的任何改变极可能导致余数的改变

这里写图片描述

模2除法 的计算方法:
模2除法·,从字面上可理解为二进制下的除法。
模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际上就是异或。在循环冗余校验码(CRC)的计算中有应用到模2除法。
1111000除以1101:

这里写图片描述

想知道模2除法,只需要知道什么是异或运算就很容易算出。
计算机中,异或逻辑表示为: (记忆方法:同为0异为11^1=0
0^0=0
1^0=1
0^1=1
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值