C++计算CRC-8值的函数
Function to calculate CRC-8 value in C ++
我正在尝试执行一个函数来计算 CRC-8 值,但我没有得到想要的结果。
外链为:123456789
结果应该是:0xF4
我试过这个功能,但我无法让它工作:
unsigned char CRC8(const unsigned char *data, unsigned char len)
{
unsigned char crc = 0x00;
while (len--)
{
unsigned char extract = *data++;
for (unsigned char tempI = 8; tempI; tempI--)
{
unsigned char sum = (crc ^ extract) & 0x01;
crc >>= 1;
if (sum)
{
crc ^= 0x8C;
}
extract >>= 1;
}
}
return crc;
}
我正在尝试执行一个函数来计算 CRC-8 值,但我没有得到想要的结果。
外链为:123456789
结果应该是:0xF4
我试过这个功能,但我无法让它工作:
unsigned char CRC8(const unsigned char *data, unsigned char len)
{
unsigned char crc = 0x00;
while (len--)
{
unsigned char extract = *data++;
for (unsigned char tempI = 8; tempI; tempI--)
{
unsigned char sum = (crc ^ extract) & 0x01;
crc >>= 1;
if (sum)
{
crc ^= 0x8C;
}
extract >>= 1;
}
}
return crc;
}