数值¶
n&(n-1)
作用是消除数字 n 的二进制表示中的最后一个 1
一个数和它本身做异或运算(^)结果为 0,即 a ^ a = 0
不用临时变量交换两个数
int a = 1, b = 2;
a ^= b;
b ^= a;
a ^= b;
// 现在 a = 2, b = 1
n&(n-1)
作用是消除数字 n 的二进制表示中的最后一个 1
一个数和它本身做异或运算(^)结果为 0,即 a ^ a = 0
不用临时变量交换两个数
int a = 1, b = 2;
a ^= b;
b ^= a;
a ^= b;
// 现在 a = 2, b = 1