Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对相同的数字进行异或运算?_Java_Xor_Boolean Operations - Fatal编程技术网

Java 如何对相同的数字进行异或运算?

Java 如何对相同的数字进行异或运算?,java,xor,boolean-operations,Java,Xor,Boolean Operations,我想把k和它自己的n次进行异或运算。最简单的方法是在循环中对其自身进行n次异或运算。有更好的办法吗 int t = k; for(int i = 0; i < n; i++) k = k ^ t; int t=k; 对于(inti=0;i

我想把k和它自己的n次进行异或运算。最简单的方法是在循环中对其自身进行n次异或运算。有更好的办法吗

int t = k;
for(int i = 0; i < n; i++) k = k ^ t;
int t=k;
对于(inti=0;i
如果N为奇数,则将K的N个副本XOR在一起生成K,如果N为偶数,则生成0。K^K==0,0^K==K,每增加一个K,它就会在这些结果之间交替(您的代码当前正在将K的n+1个副本XORing在一起,我猜这是一个错误)


一个数的异或的偶数导致0:
k^k=0

一个数的异或奇数导致该数:
k^k^k=k

因此,您不需要对数字本身进行异或检查最终结果的次数。
n
事实上,您根本不需要XOR。只需检查
n
是偶数还是奇数

return (n & 1) == 0 ? 0 : k

当偶数
(n&1)=0时
|当奇数
(n&1)=1时
(n%2==1)?k:0。等等,你的代码与你的英语不匹配。你说你想对k本身进行异或运算,但你的代码用其他数字进行异或运算-你的意思是
inti
?@user2357112可能。
return (n & 1) == 0 ? 0 : k