^运算的运用
Posted 背时的哥哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了^运算的运用相关的知识,希望对你有一定的参考价值。
//^运算:无进位相加,满足结合律与交换律
//例:整型数组中,只有一个数出现了奇数次,其余数出现了偶数次,求这个数
//例:整型数组中,只有两个数出现了偶数次,其余数出现了偶数次,求这两个数
public class Test1
public void one(int nums[])
int r = 0;
for (int num : nums)
r ^= num;
System.out.println(r);
public void two(int[] nums)
int r = 0;
for (int num : nums)
r ^= num;
//若设这两个数分别为a,b,,则此时r==a^b;
//a!=b,则r的某一位一定为1,找出r最右则为一的位,并以此为依据将数组中的数进行分类
int q = r & (~r + 1);//取r最右侧的1
int r1 = 0;
for (int num : nums)
if ((num&q)==0)
r1 ^= num;
System.out.println(r1+" "+(r^r1));
以上是关于^运算的运用的主要内容,如果未能解决你的问题,请参考以下文章