Fork me on GitHub

Capl语言 CRC算法大全

CRC网站

CRC计算器(好用)

CRC16-CCITT

word CRC_16_CCITT(byte data[], byte len)
{
  stack int i = 0;
  stack int index = 0;
  word crc16 = 0x0000;
    
  while(len--) 
  {
    for(i=0x80; i!=0; i>>=1) 
    {
          if((crc16 & 0x8000) != 0) {
              crc16 = crc16 << 1;
              crc16 = crc16 ^ 0x1021;
          }
          else{
              crc16 = crc16 << 1;
          }
          if((data[index] & i) != 0) {
              crc16 = crc16 ^ 0x1021;  //crc16 = crc16 ^ (0x10000 ^ 0x11021)
          }
    }
    index++;
  }
  return crc16;
}

 

posted @ 2024-04-11 11:28  张一默  阅读(70)  评论(0编辑  收藏  举报