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