n的二进制表示里第k位是多少,从个位开始数
1. 先把第k位移到最后一位 n >> k
2. 看个位是多少 x&1
n >> k & 1
lowbit(x):返回x的最后一位1
x = 1010 返回 10
x = 101000 返回 1000
int lowbit(x) { return x & -x; // 补码:取反+1 (~x + 1) }
lowbit()应用:统计x的二进制表示1的个数