BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验。具体算法是:将每一个字节的数据(一般是两个16进制的字符)进行异或后即得到校验码。
例如16进制数据:01 A0 7C FF 02
计算:01 xor A0 xor 7C xor FF xor 02 = 20
校验码是:20
DEMO1
unsigned char data[10]={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD};
unsigned char out;//用于保存异或结果
out=0x00;
for (i=0;i<sizeof(data);i++)
{
out^=data;
}
DEMO2
check_val=0;
for(i=0;i<4;i++)
{
check_val=check_val^check_buffer[i];
}