什么是C#独占或`^`用法?

Nav*_*ani 7 c# operators bitwise-operators bitwise-xor

有谁可以用一个很好的例子解释这个算子?

我知道这个运营商是什么.我的意思是一个真实的例子.

Mer*_*ham 15

它是逻辑操作的实现 exclusive disjunction

http://en.wikipedia.org/wiki/Exclusive_or

独占分离通常用于按位运算.例子:

  • 1 xor 1 = 0
  • 1 xor 0 = 1
  • 0 xor 1 = 1
  • 0 xor 0 = 0
  • 1110 xor 1001 = 0111(这相当于没有携带的加法)

如上所述,由于异或分离与加法模2相同,因此两个n比特串的按位异或分离与向量空间(Z/2Z)^ 4中的加法的标准向量相同.

在计算机科学中,独有的分离有几种用途:

  • 它告诉两个位是否不相等.
  • 它是一个可选的位翻转器(决定输入选择是否反转数据输入).
  • 它告诉是否存在奇数1位(如果奇数个变量为真,则为真).

(以及其他一大堆用途)


she*_*bin 6

例如,像这样:

var result = a ^ b;

result          a        b
--------------------------------
true            true    false
true            false   true
false           true    true
false           false   false
Run Code Online (Sandbox Code Playgroud)


Til*_*ill 6

对于“异或”求值为真,一个且只有一个操作数必须为真。

foo ^ bar
Run Code Online (Sandbox Code Playgroud)

相当于

(foo && !bar) || (!foo && bar)
Run Code Online (Sandbox Code Playgroud)