【发布时间】:2020-05-14 05:50:36
【问题描述】:
我正在尝试计算串行通信的校验和。所以我为数据缓冲区制作了一个字节数组。 我不知道如何将这个数据缓冲区的字节数组用于这个功能。 因为这个函数的参数类型是字节指针。 如何使用这个功能?
byte[] arrayForChecksum // for databuffer
// calculating a checksum for C#
public unsafe static ushort CalcCRC(byte * pDataBuffer, uint usDataLen)
{
byte nTemp;
ushort wCRCWord = 0xFFFF;
while ((usDataLen--) != 0)
{
nTemp = (byte)(wCRCWord ^*pDataBuffer++);
wCRCWord >>= 8;
wCRCWord ^= TABLE_CRCVALUE[nTemp];
}
return wCRCWord;
}
// original code in C
unsigned short CalcCRC(unsigned char* pDataBuffer, unsigned long usDataLen)
{
unsigned char nTemp;
unsigned short wCRCWord = 0xFFFF;
while (usDataLen--)
{
nTemp = wCRCWord ^ *(pDataBuffer++);
wCRCWord >>= 8;
wCRCWord ^= TABLE_CRCVALUE[nTemp];
}
return wCRCWord;
}
【问题讨论】: