?? crc_16.c
字號:
#define POLY 0x8408/*// 16 12 5// this is the CCITT CRC 16 polynomial X + X + X + 1.// This works out to be 0x1021, but the way the algorithm works// lets us use 0x8408 (the reverse of the bit pattern). The high// bit is always assumed to be set, thus we only use 16 bits to// represent the 17 bit value.*/#include "crc.h"WORD crc16(char *data_p, WORD length){ unsigned char i; unsigned int data; unsigned int crc = 0xffff; if (length == 0) return (~crc); do { for (i=0, data=(unsigned int)0xff & *data_p++; i < 8; i++, data >>= 1) { if ((crc & 0x0001) ^ (data & 0x0001)) crc = (crc >> 1) ^ POLY; else crc >>= 1; } } while (--length); crc = ~crc; data = crc; crc = (crc << 8) | ((data >> 8) & 0xff); return (crc);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -