www.pudn.com > rs232_moni.rar > CheckSum.cpp
#include "stdafx.h"
#include "CheckSum.h"
#define CHECKVALUE(pt,nl) if((btData==NULL)||(nLength<=0)){AfxMessageBox("无效数组!");return -1;}
CCheckSum::CCheckSum()
{
}
CCheckSum::~CCheckSum()
{
}
//CCITT V.41,x16 + x12 + x5 + 1
WORD CCheckSum::CCITT_CRC_16(BYTE* btData,int nLength)
{
CHECKVALUE(btData,nLength);
WORD CRC=0;
BYTE j;
int i;
for(i=0;i>8)+(CRC<<8));/* 应用时低在先 */
}
//ANSI CRC-16,x16 + x15 + x2 + 1
WORD CCheckSum::ANSI_CRC_16(BYTE* btData,int nLength)
{
CHECKVALUE(btData,nLength);
WORD CRC=0xFFFF;
BYTE j,Tmp=0;
int i;
for(i=0;i>1;
if(Tmp)CRC=(CRC^0xA001);
}
}
return ((CRC>>8)+(CRC<<8)); /* 应用时高在先 */
}
BYTE CCheckSum::CCITT_CRC_8(BYTE* btData,int nLength)
{
CHECKVALUE(btData,nLength);
BYTE CRC=0,j;
int i;
for(i=0;i