遇到上位机发送指令,校验方式使用异或校验,根据找到的代码 进行了修改。
有两种形式:1 两个数组同索引的值进行异或;
2 同数组内所有值进行异或;
第一种:、
//两个数组进行异或
byte[] arr1 = { };
byte[] arr2 = { 0x55 };
byte[] arrXor = new byte[arr1.Length];
for (int i = 0; i < arr1.Length; i++)
{
arrXor[i] = (byte)(arr1[i] ^ arr2[i]);
Console.WriteLine("0x{0:x}", arrXor[i]);
}
Console.ReadKey();
第二种:
//对同一数组内数据进行异或
byte[] arr2 = { 0x01, 0x55 };
int i;
byte x;
x = 0;
for (i = 0; i < arr2.Length; i++)
{
x ^= arr2[i];
}
Console.WriteLine("0x{0:x}", x);
Console.ReadKey();