十六进制命令校验C代码
/********************************************
* CRC校验 */ unsigned short GetCrc16 ( char *ptr, unsigned short count ) //其中*ptr为帧首地址,count为(帧长度-2) { unsigned short crc, i; //unsigned short 无符号整型,范围是[0,65535] crc = 0; while(count--) { crc = crc ^ (int) *ptr++ << 8; for(i = 0; i < 8; i++) { if(crc & 0x8000) crc = crc << 1 ^ 0x1021; else crc = crc << 1; } } return (crc & 0xFFFF); }