Java XNOR运算符

时间:2011-12-11 17:25:37

标签: java

我做了一些研究,并在java中编写了一些适合我需要的简单程序。我在整数上使用逻辑运算符AND,OR,XOR,但我想念XNOR运算符。我正在寻找的是一个XNOR运算符,其行为与其他提到的相同(可以应用于整数)。有人可以用Java编写这样的类吗?

4 个答案:

答案 0 :(得分:59)

boolean xnor(boolean a, boolean b) {
    return !(a ^ b);
}

甚至更简单:

boolean xnor(boolean a, boolean b) {
    return a == b;
}

如果你实际上在谈论按位运算符(你说你在int上运行),那么你将需要第一个代码段的变体:

int xnor(int a, int b) {
    return ~(a ^ b);
}

答案 1 :(得分:16)

逻辑XNOR运算符为==

你的意思是按位

答案 2 :(得分:3)

if (!a ^ b) doSomething();

它给出了相同的结果,因此您不必使用括号。

我更喜欢XOR门,因为如果你在一个应该是=的地方意外使用==,可能会犯错。

if (a = b) doSomething(); // performs like "if (b) doSomething();"

也是一个按位版本。

someInt = ~a ^ b

答案 3 :(得分:2)

运营商为A==B!(A^B)