首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >条件异或?

条件异或?
EN

Stack Overflow用户
提问于 2011-06-28 22:12:38
回答 8查看 85K关注 0票数 94

为什么C#没有条件XOR运算符?

示例:

代码语言:javascript
复制
true  xor false = true
true  xor true  = false
false xor false = false
EN

回答 8

Stack Overflow用户

发布于 2013-02-03 02:02:06

这个问题有点过时了,但是...

这就是运算符的工作方式:

代码语言:javascript
复制
true xor false = true
true xor true = false
false xor true = true
false xor false = false

这就是!=运算符处理bool类型的方式:

代码语言:javascript
复制
(true != false) // true
(true != true) // false
(false != true) // true
(false != false) // false

因此,如您所见,现有的^^可以替换为不存在的!=

票数 307
EN

Stack Overflow用户

发布于 2011-06-28 22:15:00

有一个逻辑XOR运算符:^

文档:C# Operators^ Operator

票数 29
EN

Stack Overflow用户

发布于 2015-12-29 19:04:01

根据Mark L的要求,以下是正确的版本:

代码语言:javascript
复制
 Func<bool, bool, bool> XOR = (X,Y) => ((!X) && Y) || (X && (!Y));

以下是真值表:

代码语言:javascript
复制
 X | Y | Result
 ==============
 0 | 0 | 0
 1 | 0 | 1
 0 | 1 | 1
 1 | 1 | 0

参考:Exclusive OR

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6507850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档