标题:Logical XOR 在c++怎么用?符号是是什么啊
只看楼主
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
已结贴  问题点数:20 回复次数:2 
Logical XOR 在c++怎么用?符号是是什么啊
我知道Logical and&&      Logical or||都有自己的符号
而且有短路现象
但是Logical XOR的符号是是什么啊?我知道这个符号没有短路现象
难道要这样写
aXORb想要测试都没办法测试


[此贴子已经被作者于2020-2-6 12:24编辑过]

搜索更多相关主题的帖子: c++ 测试 办法 符号 现象 
2020-02-06 12:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
C/C++中不存在 Logical XOR,只有 bitset XOR。

&&、|| 等是 逻辑操作符
&、| 等是 位操作符,其中“^”就是位操作的“异或”

一定要说“Logical XOR”的话,那应该是“!=”,即“不同为true,相同为false”
2020-02-06 14:04
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
嗯嗯,文章作者说也可以用!=模拟XOR,我就想是不是XOR有它特殊的符号
原文是这样说的you can easily mimic logical XOR using the inequality operator (!=)(我用翻译器翻译的可能和作者说的有偏差,我把原话复制粘贴你看看)
然后我又继续查找其他网页确实也有人提到了^这个符号,我就想这不是位运算符吗
以下是那个人的举例
    2. C ++中没有逻辑XOR,主要是因为与AND和OR不同,不能对XOR进行“短时间”评估:使用AND和OR,一旦您评估了第一个操作数,一半的时间就会知道是否存在 需要评估第二个操作数。 使用XOR不能做到这一点。 必须始终评估两个操作数。
    In other words:
    if ( (a==b) & (c==d) )
   
   
    generates different code from
    if ( (a==b) && (c==d) )
   
   
    while
    if ( (a==b) ^ (c==d) )
   
   
    would generate exact the same code as
    if ( (a==b) ^^ (c==d) )
^^应该是您说的bitset  XOR

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-06 14:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499115-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.355325 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved