定义
异或,英文为exclusive OR,缩写成xor
.
异或(eor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“eor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
.
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
.
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
在C#中来理解
异或运算符在C#中用 “^” 来表示
口诀:相同取0,相异取1
例子
int a = 5;
int b = 30;
Console.WriteLine(a^b);
Console.ReadKey(); 输出结果是27
> 输出结果为27的原因:
在这里
5的二进制是 0000 0101
30的二进制是 0001 1110
> 而异或的算法就是,两个二进制数的每一位进行比较,如果相同则为0,不同则为1
>即:
0000 0101
0001 1110
--------------
0001 1011
而00011011表示的十进制数是27,所以最后结果为27
总结
异或运算,就是把两个数字先转为二进制数。然后把二进制数的每一位进行比较,相同为0,不同为1
输入 | 运算符 | 输入 | 结果 |
---|---|---|---|
1 | ^ | 0 | 1 |
1 | ^ | 1 | 0 |
0 | ^ | 0 | 0 |
0 | ^ | 1 | 1 |