【ACWING】 位运算
1 遍历二进制下每一位的值
求n的二进制表示中的第k位
(n>>k)&1
int n = 10;
for(int k = 3; k >= 0; k--) cout<<(n>>k)&1;
2 lowbit -- 返回一个二进制表示的最后一个1
比如
x = 1010,返回10
x = 101000,返回1000
int lowbit( int x){
return x&(-x);
}
3 去掉最后一个1
x&(x-1)
求n的二进制表示中的第k位
(n>>k)&1
int n = 10;
for(int k = 3; k >= 0; k--) cout<<(n>>k)&1;
比如
x = 1010,返回10
x = 101000,返回1000
int lowbit( int x){
return x&(-x);
}
x&(x-1)