crc计算,CRC码的计算方法

1,CRC码的计算方法信息码添四个零,去除多项式,得到余数,为****那么传送的12个比特就是11001101**** 。Computer Networks 自顶向下方法书里有!
2,CRC循环冗余码计算方法CRC计算中知道数据比特序列,怎样算出除式,然后算出对应比特序列的?。课侍? x3+x+1,求CRC码 。M(x) = 1100 M(x)*x3 = 1100000 G(x)
3 , CRC算法怎么算因为G(x),所以为10101 , 就是1*x^4+0*x^3+1*x^2+0*x^1+1*x^0所以,为10101,crc校验算法要是不会,可以继续问我为什么不在网上找一下呢?crc一般常用的有查表法 。以前我做一个串口传输入程序的时候,就是在网上找的源代码 。然后自己稍稍改了一下就ok了 。如果是用计算法的话,说老实话,我也不太明白 。呵呵 。不过真正应用的时候,重要的是结果 。【crc计算,CRC码的计算方法】
4,循环冗余校验CRC的计算方法到底是怎么样的首先会有b2(x),取b2(x)最高次数数n^d,乘上b1(x)(即在b1(x)最后加上b2(x)最高次数个0)得到c(x),将c(x)用模2除法除以b2(x),(相同位去0,不同位取1),得到的余数就是q(x)100110010011左移六位 , 去除以g(x)=1000101,余数是110001,冗余后 , b正确收到的应该是 100110010011110001 这一串 。5 , 如何计算CRC校验码我先给你举个例子: 已知信息位为1100,生成多项式G(x) = x3+x+1,求CRC码 。M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011 M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010 CRC码为: M(x)*x 3+R(x)=1100000+010 =1100010 其原理是:CRC码一般在k位信息位之后拼接r位校验位生成 。编码步骤如下: (1)将待编码的k位信息表示成多项式 M(x) 。(2)将 M(x)左移 r 位,得到 M(x)*xr。(3)用r+1位的生成多项式G(x)去除M(x)*xr 得到余数R(x) 。(4)将M(x)*xr 与R(x)作模2加,得到CRC码 。6,Modbus RTU CRC校验详细步骤CRC值怎么计算//参考如下C代码,Modbus RTU CRC!UINT16 Crc16(UCHAR *pDatas, UCHAR ucLen)UINT16 ui16Crc = 0XFFFF;UCHAR i;while (ucLen--)ui16Crc ^= *pDatas++;for (i = 0; i < 8; i++)if (ui16Crc & 0x0001)ui16Crc >>= 0x01;ui16Crc ^= 0xa001;//多项式}elseui16Crc >>= 0x01;}}}return (ui16Crc);}crc计算方法是:1、预置1个16位的寄存器为十六进制ffff(全1),此寄存器为crc寄存器2、把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的crc寄存器的低八位相异或,吧结果存放于crc寄存器 。3、把crc寄存器的内容右移一位(朝低位)用0填补最高位,并检测右移后的移出位 。4、如果移出位为零,则重复第三步(再次右移一位);如果移出位为1,crc寄存器与多项式a001进行异或 。5、重复步骤3和4,直到右移8次 , 这样整个8位数据全部进行了处理 。6、重复步骤2和5,进行通讯信息帧下一个字节的处理 。7、将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位crc寄存器的高、低字节进行交换8、最后得到的crc寄存器内容即为:crc校验码 。

    推荐阅读