RT

解决方案 »

  1.   

    看看这个:void InitCRCTable()
    {
    unsigned long crc, i, j;
    unsigned long poly = 0xEDB88320; for(i=0; i<256; i++)
    {
    crc = i;
    for(j=8; j>0; j--)
    {
    if(crc & 1)
    crc = (crc >> 1) ^ poly;
    else
    crc >>= 1;
    }
    CRCTable[i] = crc;
    }
    }
    unsigned long CalculateCRC(unsigned char * buffer,long length)
    {
    unsigned long crc = 0xFFFFFFFF;
    unsigned char * ptr = buffer; while(length > 0)
    {
    crc = ((crc >> 8) & 0x00FFFFFF) ^ CRCTable[(crc ^ *ptr) & 0xFF];
    ptr++;
    length--;
    }
    return crc;
    }
    int main(int argc, int argv)
    {
    InitCRCTable(); unsigned long crc = CalculateCRC((unsigned char *)("ABCDEFG"), 7);
    return 0;
    }
      

  2.   

    对了,忘记说明一个定义:
    unsigned CRCTable[256];