什么是C#exclusive或`^`用法?

什么是C#exclusive或`^`用法?,c#,operators,bitwise-operators,bitwise-xor,C#,Operators,Bitwise Operators,Bitwise Xor,有人能用一个好的例子来解释这个操作符吗 我知道这个接线员是什么。我指的是一个现实生活中的例子。它是逻辑运算的一个实现独占析取 排他析取通常用于位运算。示例: 1或1=0 1或0=1 0或1=1 0异或0=0 1110 xor 1001=0111(这相当于不带进位的加法) 如上所述,由于互斥析取与模2加法相同,两个n位字符串的位互斥析取与向量空间(Z/2Z)^4中的标准加法向量相同 在计算机科学中,排他析取有几种用途: 它告诉我们两位是否不相等 它是一个可选的位翻转器(决定输入选择是否反转

有人能用一个好的例子来解释这个操作符吗


我知道这个接线员是什么。我指的是一个现实生活中的例子。

它是逻辑运算的一个实现
独占析取

排他析取通常用于位运算。示例:

  • 1或1=0
  • 1或0=1
  • 0或1=1
  • 0异或0=0
  • 1110 xor 1001=0111(这相当于不带进位的加法)
如上所述,由于互斥析取与模2加法相同,两个n位字符串的位互斥析取与向量空间(Z/2Z)^4中的标准加法向量相同

在计算机科学中,排他析取有几种用途:

  • 它告诉我们两位是否不相等
  • 它是一个可选的位翻转器(决定输入选择是否反转数据输入)
  • 它告诉是否有奇数个1位(当奇数个变量为真时为真)

(以及大量其他用途)

当使用XOR时,只有当比较语句中的一条为true时,该语句才会计算为true。因此:

bool foo = true;
bool bar = false;
if (foo ^ bar) { bar = true; // this evaluates to true }
if (foo ^ bar) { // This evaluates to false, since both statements are now true. }

编程语言的引用始终是查找运算符定义的最佳位置

在这种情况下,MSDN是C#运算符最合适的定义

根据:

二进制^运算符是为 积分型与布尔型。对于 整数类型,^按位计算 其操作数的异或。为布尔 操作数,^计算逻辑 其操作数的异或;就是, 当且仅当 它的一个操作数正好为true


还列出了一个示例。

例如,如下所示:

var result = a ^ b;

result          a        b
--------------------------------
true            true    false
true            false   true
false           true    true
false           false   false

XOR是一种常见的布尔运算符,在C#中没有唯一的运算符。 我建议读一点关于布尔代数的书来了解它的用途, 然后检查使用任意两个数字或字符a和b执行(a或b)异或b时得到的结果。

对于“异或”,要将其求值为真,则只有一个操作数必须为真

foo ^ bar
相当于

(foo && !bar) || (!foo && bar)

简单搜索:我的答案是3。wiki页面上大约有十几个。在我整个编程生涯中,我第一次发现了XOR操作符的用途。使用^for Math.Pow()会更好地使用符号。和@shenhengbin您关于使用异或运算符计算布尔值的回答让我想知道:
foo^bar
不等于
foo!=那么条形码也是吗?