BCC校验小知识
BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验。具体算法是:将每一个字节的数据(一般是两个16进制的字符)进行异或后即得到校验码。
/**
* 数据校验 异或处理
*/
public static String yiHuo(String content) {
int a = 0;
for (int i = 0; i < content.length()/2; i++) {
a = a ^ Integer.parseInt(content.substring(i*2,(i*2)+2), 16);
}
String result = Integer.toHexString(a);
if (result.length()==1) {
return "0"+result;
}else{
return result;
}
}
例如16进制数据:01A07CFF02
计算:01 xor A0 xor 7C xor FF xor 02 = 20
校验码是:20