位运算

如何取得一个数二进制第i位?

数n二进制第i位= n>>i&1

如何取得一个数最右边的二进制位,并返回二进制数?

IMG_86D46961D9A31.jpeg

如何取得一个二进制数中包含1的个数?

image.png

#include <iostream>
using namespace std;
int main()
{
    int n;
    scanf("%d", &n);
    while (n--){
        int x, s = 0;
        scanf("%d", &x);
        for (int i = x; i; i -= i & -i) s ++ ;
        printf("%d ", s);
    }
    return 0;
}

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×