```Java /** * & 按位与 同一得1 * 判断一个整数n是不是2的x次幂 * 若n&(n-1)=0 则说明n是2的x次幂 * 也可以这样说:循环结束后当ans=1时,说明n时2的x幂 * 按位与 & : 同一得一,可用于清零操作 * @param n * @return ans 表示n转化成二进制数之后,1的个数 */ publicstaticinttest1(int n){ int ans = 0; while (n != 0) { ans++; n &= (n-1); System.out.println(n); } return ans; } ```
### 异或 ^
```Java /** * ^ 异或 相同得0 * 可用于交换两个变量的数值,不用到带三个变量 * 交换律 * @param a , b */ publicstaticvoidtest3(int a, int b){ a = a ^ b; // a^b ^ b = a b = a ^ b; // a^b ^ a = b a = a ^ b; }