gpt4 book ai didi

c - 如何将异或 (XOR) 运算符应用于多个谓词?

转载 作者:行者123 更新时间:2023-12-04 05:22:40 28 4
gpt4 key购买 nike

我想知道是否有一种方法可以将异或(对于两个操作数称为 XOR)运算符应用于多个谓词?

例如,假设 pqr 是三个谓词(换句话说, bool 变量)。我想写一个像这样的 if 条件:

if ((p || q || r) && !(p && q && r))

即我希望条件为真,前提是至少其中一个条件为真,但不是全部为真。

显然 if (p ^ q ^ r) 不起作用(考虑 p=trueq=truer=false)

谢谢。


我得到了c语言的一个很好的答案,但我很有趣地知道c#中有解决方案吗?

最佳答案

这是一种方法:

if ((!!p + !!q + !!r) % 3)

但这可能太聪明了,不利于其自身的利益。

编辑:

if (((p ? 1 : 0) + (q ? 1 : 0) + (r ? 1 : 0)) % 3 != 0)  // C#-compatible version

关于c - 如何将异或 (XOR) 运算符应用于多个谓词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13547044/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com