c#的异或运算符
int a = 5;
int b = 30;
Console.WriteLine(a^b);
Console.ReadKey(); 输出结果是27
这是因为 5的二进制是
0000 0101
30的二进制是
0001 1110
而异或的算法就是,两个二进制数的每一位进行比较,如果相同则为0,不同则为1,即
0000 0101
0001 1110
--------------
0001 1011
而00011011表示的十进制数是27。
==============================================
|
执行结果:
C# 异或校验法
public byte Get_CheckXor(byte[] data)
{
byte CheckCode = 0;
int len = data.Length;
for (int i = 0; i < len; i++)
{
CheckCode ^= data[i];
}
return CheckCode;
}