Java 如何对相同的数字进行异或运算?
我想把k和它自己的n次进行异或运算。最简单的方法是在循环中对其自身进行n次异或运算。有更好的办法吗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
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