日期:2014-05-18 浏览次数:21193 次
const uint PRESET_VALUE = 0xFFFF;
const uint POLYNOMIAL = 0x8408;
uint uiCrc16Cal(char[] pucY, int ucX)
{
uint ucI, ucJ;
uint uiCrcValue = PRESET_VALUE;
for (ucI = 0; ucI < ucX; ucI++)
{
uiCrcValue = uiCrcValue ^ pucY[ucI];
for (ucJ = 0; ucJ < 8; ucJ++)
{
if ((uiCrcValue & 0x0001) != 0)
{
uiCrcValue = (uiCrcValue >> 1) ^ POLYNOMIAL;
}
else
{
uiCrcValue = (uiCrcValue >> 1);
}
}
}
return uiCrcValue;
}