| 最新版的HotWC3网上在线运算器 HotWC3操作方法:
 1.选择文件类型为“.C”。
 2.选择功能“CRC位域表及算法”。
 3.选择单选钮“CRC_CCITT”。
 4.点击“结果”钮并在此框内显示“code”。(此方法只适应于Keil C51)
 5.在“明文”框内输入需要校验的数据流并选择或不选择“文本”确定其格式(HEX/BIN)。
 6.点击“小表”即可生成下列表格及C语言查表算法。
 7.点击“保存”即可将表格和算法保存为C语言格式的文件可直接通过C语言编译系统的编译及运行。
 
 现以Keil C51的CRC16_CCITT为例:
 
 //CRC位域4表(大端):
 code const unsigned int CRCL16_1021_Table[16] = {
 0x0000,0x1021,0x2042,0x3063,0x4084,0x50A5,0x60C6,0x70E7,0x8108,0x9129,0xA14A,0xB16B,0xC18C,0xD1AD,0xE1CE,0xF1EF
 };
 //CRC位域4查表算法(大端):
 unsigned int GetCRCL16_1021_FFFF_0000_Table(unsigned char *crcBuff, unsigned char crcLen) {
 unsigned char i;
 unsigned int crc = 0xFFFF;
 unsigned char crcTemp;
 for(i = 0; i < (crcLen * 2); i ++) {
 if (i & 1) crcTemp = crcBuff[i >> 1] & 0x0F;
 else crcTemp = crcBuff[i >> 1] >> 4;
 crc = (crc << 4) ^ CRCL16_1021_Table[(crc >> 12) ^ crcTemp];
 }
 return crc;
 }
 void main() {
 code const unsigned char dataTable[] = "\x01\x23\x45\x67\x89\xAB\xCD\xEF";
 unsigned int crc;
 crc = GetCRCL16_1021_FFFF_0000_Table((unsigned char *)dataTable, sizeof(dataTable) - 1);
 while(1);
 }
 |