当前位置 :
crc算法问题用CRC-8算法求101001110100001的效验码。CRC-8标准的h(x)=x^8+x^7+x^6+x^4+x^2+1,既h是9位的二进制串111010101。这个h是111010101怎么算出来的111010101啊
1人问答
更新时间:2024-04-18 00:01:15
问题描述:

crc算法问题

用CRC-8算法求101001110100001的效验码。CRC-8标准的h(x)=x^8+x^7+x^6+x^4+x^2+1,既h是9位的二进制串111010101。这个h是111010101怎么算出来的111010101啊

黄儒乐回答:
  一、循环冗余码校验英文名称为CyclicalRedundancyCheck,简称CRC。   它是利用除法及余数的原理来作错误侦测(ErrorDetecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。   根据应用环境与习惯的不同,CRC又可分为以下几种标准:   ①CRC-12码;   ②CRC-16码;   ③CRC-CCITT码;   ④CRC-32码。   CRC-12码通常用来传送6-bit字符串。   CRC-16及CRC-CCITT码则用是来传送8-bit字符,其中CRC-16为美国采用,而CRC-CCITT为欧洲国家所采用。   CRC-32码大都被采用在一种称为Point-to-Point的同步传输中。   下面以最常用的CRC-16为例来说明其生成过程。   CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算相同为0,不同为1;0^0=0;0^1=1;1^0=1;1^1=0),   之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。   下面为CRC的计算过程:   1.设置CRC寄存器,并给其赋值FFFF(hex)。   2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。   3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。   4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。   5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。   6.重复第2至第5步直到所有数据全部处理完成。   7.最终CRC寄存器的内容即为CRC值。   常用的CRC循环冗余校验标准多项式如下:   CRC(16位)=X16+X15+X2+1   CRC(CCITT)=X16+X12+X5+1   CRC(32位)=X32+X26+X23+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1   以CRC(16位)多项式为例,其对应校验二进制位列为11000000000000101。   注意:这儿列出的标准校验多项式都含有(X+1)的多项式因子;各多项式的系数均为二进制数,所涉及的四则运算仍遵循对二取模的运算规则。   (注:对二取模的四则运算指参与运算的两个二进制数各位之间凡涉及加减运算时均进行XOR异或运算,即:1XOR1=0,0XOR0=0,1XOR0=1,0XOR1=1,即相同为0,不同为1)
其它推荐
最新更新
PC端 | 移动端 | mip端
问答网(wenda2.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

邮箱:联系方式:

Copyright©2009-2021 问答网 wenda2.com 版权所有 闽ICP备2022000227号-1