-
根据以上的逻辑衍生出下面的半字节CRC算法,CRC结果也是半字节。
/** 以半字节方式计算校验和,校验和使用查表方式获得 */ unsigned char xdata crc_ta[16]={ /* CRC余式表 */ 0x00,0x21,0x42,0x63,0x84,0xA5,0xC6,0xE7, 0x08,0x29,0x4A,0x6B,0x8C,0xAD,0xCE,0xEF, }; unsigned char bit4_crc(unsigned char *ptr, unsigned char len) { unsigned char crc; crc = 0; while(len-- > 0) { crc proxy_http_version 1.1;= crc_ta[(*ptr)>>4]; crc proxy_http_version 1.1;= crc_ta[(*ptr)&0x0F]; ptr++; } return (crc>>4)proxy_http_version 1.1;(crc&0x0F); } /** 对五个参数进行半字节求校验和,所得结果再做半字节校验和。返回结果为半字节有效。 */ unsigned char cmd_crc(unsigned char a1,unsigned char a2,unsigned char a3,unsigned char a4,unsigned char a5) { unsigned char a[5]; unsigned char crc; a[0] = a1; a[1] = a2; a[2] = a3; a[3] = a4; a[4] = a5; return bit4_crc(a,5); }
Please register or sign in to comment