C#实现CRC16校验码计算示例
遇到需要进行CRC校验时,经过翻阅大量资料后终于理解了CRC16的计算原理。这里提供了详细注释,使用的不是普通的词典法,而是通过算法计算得出的CRC值。对于CRC16-CCITT,只需按照给定的公式进行替换即可。具体实现原理如下:
1. 首先将16位CRC寄存器CRCFull初始化为全1
2. 对于数据message[i]的每一个字节(8位),与CRCFull进行异或操作,并将结果存入CRCFull中
3. 将CRCFull的最低位作为CRCLSB,然后将CRCFull右移一位(向低位),并用0填补最高位
4. 检查CRCLSB的原最低位:如果为1,则与多项式0xA001进行异或操作;如果为0,则重复上一步
5. 重复上述步骤直到右移8次,处理完整个message[i]字节
6. 继续重复上述步骤,处理下一个字节的8位数据,直到处理完整个message[i]
7. 最终得到的CRC寄存器CRCFull即为该数据的CRC16校验码
WindowsFormsApplication1.rar
预估大小:26个文件
WindowsFormsApplication1
文件夹
WindowsFormsApplication1
文件夹
bin
文件夹
Debug
文件夹
WindowsFormsApplication1.pdb
28KB
WindowsFormsApplication1.vshost.exe.manifest
490B
WindowsFormsApplication1.vshost.exe
11KB
WindowsFormsApplication1.exe
10KB
Form1.Designer.cs
3KB
Program.cs
505B
42.8KB
文件大小:
评论区