什么是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(这相当于不带进位的加法)
- 它告诉我们两位是否不相等
- 它是一个可选的位翻转器(决定输入选择是否反转数据输入)
- 它告诉是否有奇数个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!=那么条形码也是吗?