/********************************************************************************************** CRC16-CCITT检验 生成多项式:x16+x15+x2+1 利用字节型算法,对N字节进行CRC16-CCITT校验。 BY: SYSU-LXIONGH 字节型算法的一般描述为:本字节的CRC码,等于上一字节CRC码的低8位 左移8位,与上一字节CRC右移8位同本字节异或后所得的CRC码异或。 字节型具体算法如下: 1)CRC寄存器组初始化为全"0"(0x0000)。(注意:CRC寄存器组初始化全为1时,最后CRC应取反。) 2)CRC寄存器组向左移8位,并保存到CRC寄存器组。 3)原CRC寄存器组高8位(右移8位)与数据字节进行异或运算,得出一个指向值表的索引。 4)索引所指的表值与CRC寄存器组做异或运算。 5)数据指针加1,如果数据没有全部处理完,则重复步骤2)。 6)得出CRC。 1个Byte(0~255)的CRC16-CCITT校验码的产生方法为比特型算法,可产生字节型算法所需要的表 比特型具体算法如下: 1)将扩大后的数据流(2字节)高8位(BYTE)放入一个长度为16的寄存器; 2)如果寄存器的首位为1,将寄存器左移1位(寄存器的最低位从下一个字节获得),再与生成多项式的简记式异或; 否则仅将寄存器左移1位(寄存器的最低位从下一个字节获得); 3)重复第2步,直到数据流(2字节)全部移入寄存器; 4)寄存器中的值则为CRC校验码 **********************************************************************************************/ unsigned short MkCRC_16(unsigned char *pData,unsigned short *pTable/*CRC检验表指针*/,int length) {//计算数据流*pData的C