📄 crccode.cpp
字号:
#include "stdafx.h"
#include "CrcCode.h"
void CCrcCode::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;
}
m_Table_CRC[(short)i]=nAccum;
}
}
//计算 32 位 CRC-32 值
unsigned long CCrcCode::Crc32Mtt(const unsigned char *aData, unsigned long aSize, unsigned long nAccum/*=0*/)
{
while(aSize--) nAccum=(nAccum<<8) ^ m_Table_CRC[(short)((nAccum>>24)^*aData++)];
return nAccum;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -