针对Xmodem的CRC校验代码

//CRC校验
static unsigned int ComputeBlockCrc
(
 unsigned char * ptr,
 unsigned int & cumulativeCrc
 )
{
 int len = 128;
 unsigned int crc = 0;
 unsigned char i;
 while( len-- ) {
  for(i = 0x80; i != 0; i = i >> 1) {
   if((crc & 0x8000) != 0) {
    crc = crc << 1;
    crc = crc ^ 0x1021;
   }
   else {
    crc = crc << 1;
   }
   if((*ptr & i) != 0) {
    crc = crc ^ 0x1021;
   }
  }
  ptr++;
 }
 cumulativeCrc = crc&0xFFFF;
 return (crc&0xFFFF);
}

猜你喜欢

转载自blog.csdn.net/imgsq/article/details/47952983
今日推荐