java - 如何在java中找到从用户输入的三个数字的XOR
问题描述
如何计算三个数字的异或,例如用户输入的数字是 a,b 和 c 然后 (a XOR b XOR) = ?
我写了一个函数来计算相同的,但它不能正常工作:
int xorsum(int a, int b, int c)
{
int res1 = (a|b)& (~a|~b);
int res = (res1|c) & (~res1 | ~c);
return res ;
}
解决方案
int xorsum(int a, int b, int c)
{
return (a ^ b) ^ c;
}
解释:
XOR 被定义为二元运算符(即有两个参数),而不是两个以上变量的函数。A XOR B XOR C = (A XOR B) XOR C = A XOR (B XOR C)