crc_c2.txt

来自「CRC的c语言实现」· 文本 代码 · 共 41 行

TXT
41
字号
8bit and 16bit CRC source

#define AL2_FCS_COEF ((1 << 7) + (1 << 6) + (1 << 5)) /*X(8) + X(2) + X(1) +
 1*/
#define AL3_FCS_COEF ((1 << 15) + (1 << 10) + (1 << 3)) /*X(16) + X(12) + X(
5) + 1*/
unsigned char GetOneCrc(unsigned char * data, int length)
{
 unsigned char cFcs = 0;
 int i, j;
 for( i = 0; i < length; i ++ )
 {
  cFcs ^= data[i];
  for(j = 0; j < 8; j ++)
  {
   if (cFcs & 1)
    cFcs = (unsigned char)((cFcs >> 1) ^ AL2_FCS_COEF);
   else
    cFcs >>= 1;
  }
 }
 return cFcs;
}
unsigned short GetTwoCrc(unsigned char * data, int length)
{
 int i, j;
 unsigned short iFcs=0;
 for( i = 0; i < length; i ++ )
 {
  iFcs ^= (unsigned short)data[i];
  for(j = 0; j < 8; j ++)
  {
   if (iFcs & 1)
    iFcs = (unsigned short)((iFcs >> 1) ^ AL3_FCS_COEF);
   else
    iFcs >>= 1;
  }
 }
 return iFcs;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?