clwn.net
当前位置:首页 >> 求一个C语言实现的CRC16/CCITT鶯SE校验码函数 >>

求一个C语言实现的CRC16/CCITT鶯SE校验码函数

用boost的算不算?crc计算部分用C++写,调用boost库计算,编译成dll C#那边直接调用C++的dll来算结果 压缩包包含winform...

//函数功能:计算CRC16 //参数1:*pData 16位CRC校验数据, //参数2:nLength 数据流长度 //参数3:init 初始化值 //参数4:ptable 16位CRC查找表 //逆序CRC计算 unsigned short GetRevCrc_16(unsigned char * pData, int nLength, unsigned sho...

如果是低速设计上游数据可能是串行的 显然如果采用并行实现有些浪费硬件资源 因为还要把串行输入存储起来形成整字节的并行输入 CRC的“定义”不是唯一的 只要接收发送端采用的一致就行 不知道你看了什么资料 但是估计不是很好

chCRCHi和chCRCLo有没有初始化为0xFF?

由于函数名CRC16与单元格名称CRC16冲突,所以将函数名改为CRC Function CRC(ByVal x As Double) As Double CRC = x ^ 16 + x ^ 12 + x ^ 5 + 1End Function

按位计算CRC采用CRC-CCITT多项式,多项式为0x11021,C语言编程时,参与计算为0x1021。当按位计算CRC时,例如计算二进制序列为1001 1010 1010 1111时,将二进制序列数左移16位,即为1001 1010 1010 1111 (0000 0000 0000 0000),实际上该二进制序...

循环冗余校验码(CRC) CRC校验采用多项式编码方法。被处理的数据块可以看作是一个n阶的二进制多项式,由 。如一个8位二进制数10110101可以表示为: 。多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模,加减时不...

这个介绍的很详细, 你参考一下: http://www.cnblogs.com/Msisiterc/archive/2011/12/20/2294910.html

crc-16(modbus) 初始值用HFFFF,多项式用HA001;CRC-16(CCITT) 初始值用H0000,多项式H8408,经实测匀正常。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConvertToCRC16 { public static class CRC16Util { // CRC高位字节表 private static readonly byte[] m_CRCHighOrderByteTable = new byte...

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com