负数的表示
lowbit(x)
非负整数 n 在二进制表示下最低位 1 及其后面的 0 构成的数值
x & -x;
int lowbit(int x) {
return x & -x;
}
n最右边的1变成0
n&(n-1);
比如n为6
110&101 -> 100
求x的第k位二进制数
n >> k & 1;
或
1 << k & n
使用位运算 n >> i & 1 可以取出 n 的第 i 位二进制数
应用:leetcode 190. 颠倒二进制位
求x的第k位二进制数,这里是x,不是n