void CrcByteIn(UBYTE next_byte) /* Byte added to the CRC-Checksum */
{
BYTE count;
WORD feedback;
WORD Mask = 0;
for (count = 0; count < 8; count ++)
{
feedback = (wCrcReg >> (WORD)15);
feedback ^= (WORD)next_byte;
feedback &= 1;
Mask = feedback;
Mask |= (feedback < < (WORD)12);
Mask |= (feedback < < (WORD)5);
wCrcReg < <= 1;
wCrcReg ^= Mask;
next_byte >>= 1;
};
} 转换成vb代码,谢谢在线等
{
BYTE count;
WORD feedback;
WORD Mask = 0;
for (count = 0; count < 8; count ++)
{
feedback = (wCrcReg >> (WORD)15);
feedback ^= (WORD)next_byte;
feedback &= 1;
Mask = feedback;
Mask |= (feedback < < (WORD)12);
Mask |= (feedback < < (WORD)5);
wCrcReg < <= 1;
wCrcReg ^= Mask;
next_byte >>= 1;
};
} 转换成vb代码,谢谢在线等
dim count as long
dim feedback as long
dim mask as long
for count = 0 to 7
feedback = wCrcReg \ (2^15)
feedback = feedback xor next_byte;
feedback = feedbakc and 1
mask = feedback
mask = mask or (feedback *(2^12))
mask = mask or ( feedback *(2^5))
wCrcReg = wCrcReg * 2
wCrcReg = wCrcReg xor mask
next_byte = next_byte \ 2
next count
end sub不保证正确。