?? crc.cpp
字號:
#include "Crc.h"
CCrc::CCrc()
{
BuildTable32();
}
CCrc::~CCrc()
{
}
void CCrc::BuildTable32()
{
const unsigned long cnCRC_32=0x04C10DB7L;
unsigned long i, j;
unsigned long nData;
unsigned long nAccum;
for(i=0;i<256;i++)
{
nData=(unsigned long)(i<<24);
nAccum=0;
for (j=0;j<8;j++)
{
if((nData^nAccum)&0x80000000L) nAccum=(nAccum<<1)^cnCRC_32;
else nAccum<<=1;
nData<<=1;
}
Table_CRC[(short)i]=nAccum;
}
}
// 計算32位 CRC-32 值
unsigned long int CCrc::Crc32Mtt(const unsigned char *aData, const unsigned long aSize, unsigned long nAccum)
{
unsigned long i;
for(i=0;i<aSize;i++) nAccum=(nAccum<<8) ^ Table_CRC[(short)((nAccum>>24)^*aData++)];
return nAccum;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -