进制转换位运算思维. 使用积累
1.判断奇偶数:
System.out.println(5&1); //输出1 为奇数
System.out.println(4&1); //输出0 为偶数
2.交换两个整数变量的值
int a = 1;
int b = 2;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a + " " + b);// 输出 2 1
3.找出成对的数
正常思路 记录每一个数字传入对应数组的下标,然后对应数组为2的就是成对的数字
int a[]= {1,2,3,4,5,5};
int p[]=new int [6];
for (int i = 0; i < a.length; i++) {
p[a[i]]++;
}
for (int i = 0; i < p.length; i++) {
if(p[i]==2) {
System.out.println(i);
break;
}
}
使用异或 两个相同的数异或之后为0
int a[]= {1,2,3,4,5,5};
for (int i = 0; i < a.length-1; i++) {
if ((a[i]^a[i+1])==0) {
System.out.println(a[i]);
}
}
4.用一条语句判断一个整数是不是2的整数次方
if((n & (n - 1)) == 0)