二进制中1的个数–位运算–C++ 思路: 这道题求的是给定数字的二进制中1的个数,容易想到的一种解法是循环遍历整个数字的二进制最后一位,如果该数字是2的倍数,则说明是0,不用将结果+1,如果不是2的倍数,则说明是1,将结果+1,最后将数字右移一位,直到数字的所有二进制位全是0,即数字为0时结束循环。 代码: class Solution { public: int hammingWeight(uint32_t n) { int cnt = 0; while( n != 0 ){ if( n % 2 == 1 ){ ++cnt; } n >>= 1; } return cnt; } };