//先把第k位移动到最后一位 n >> k //再看一下第k位是什么 n & 1 //合并在一起 n >> k & 1
x & (-x) 也即 x & (~x + 1) //给个例子模拟一下验证 //c++中负数是对应正数的补码 -x = ~x + 1
n = n & (n - 1)