随笔分类 - CRC16校验
摘要:CRC32太大了,CRC8觉得强度不够,折中选择CRC16校验. 线性编码理论。在发送端传送的K位二进制数据,以一定规则产生一个校验监督码(或者叫监督矩阵)r位,并负载信息后,构成一个新的二进制码序列共(K+R)位。最后发送出去。在接收端根据信息吗和CRC码禁言,是否出错。 CRC16监督式(美国标准):G(X)=X^16+X^15+X2+1CRC16监督式(欧洲标准):G(X)=X16+X12+X5+1一般多数采用CCITT推荐的欧标格式:10001000000100001 16位的CRC码产生的规则是先把要发送的信息元左移16位(乘以2^16),再除以监督式,最后得到的是CRC码。再把C.
阅读全文
摘要:/// </summary>/// CRCTAB 表 /// </summary> private static ushort[] crctab = new ushort[256]{ 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x93
阅读全文
摘要:说明:CRC循环冗余错误校验计算方法 CRC—16(循环冗余错误校验)生成CRC—16校验字节的步骤如下: (1)装入一个16位寄存器,所有数位均为1。 (2)该16位寄存器的高位字节与开始8位字节进行“异或”运算。运算结果放入这个16位寄存器。 (3)把这个16位寄存器向右移1位。 (4a)若向右(标记位)移出的数位是1,则生成多项式1010000000000001和这个寄存器进行“异或”运算。 (4b)若向右移出的数位是0,则返回(3)。 (5)重复(3)和(4),直至移出8位。 (6)另外8位与该16位寄存器进行“异或”运算。 (7)重复(3)—(6),直...
阅读全文
浙公网安备 33010602011771号