回6楼 hotpower 的话:
进位位还是很有用的,下面举一CRC校验程序的例子,两者运算时间相差甚远。
unsigned int DataCheck_CRC_2Bit(unsigned char *first_data_address,
// 校验的首个数据地址指针
unsigned int data_length)
// 校验的数据序列长度[注:包括CRC码长度]
{
register unsigned char i ; // 临时寄存器变量
register unsigned int j ; // 临时寄存器变量
register unsigned char checkdata ; // 校验数据序列中的数据变量
register unsigned char check_crc_h ; // 余式R(X)(CRC校验字节)的高字节
register unsigned char check_crc_l ; // 余式R(X)(CRC校验字节)的低字节
volatile unsigned int datacheck_crc = 0 ; // 余式R(X)(返回的CRC校验字节)
check_crc_h = *first_data_address++ ; // 笫1个数据赋值于余式R(X)的高字节
check_crc_l = *first_data_address+&