【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)

posted @ 2023-03-19 00:40  wenli7363  阅读(9)  评论(0)    收藏  举报