如下代码在创建码表时不正确,请高手指点,不胜感谢!

void CRC32::BuildTable32()
{
    int i,j;
    long crc;
    for (i = 0; i < 256; i++)
    {
        crc = i;
        for (j = 0; j < 8; j++)
            {
              if (crc & 1)
                crc = (crc >> 1) ^ 0xEDB88320;
          else
                crc >>= 1;
        }
        TableCRC32[i] = crc;
    }
}

请高人赐教啊!

CRC要确定初始状态和多项式,计算结果也可以取反,所以一个串数值会有不同的CRC结果。

所以你要了解你需要的是什么CRC多项式和初始值,计算结果取不取反。

多谢liskman,问题已解决。