Write a function that takes an unsigned integer and return the number of '1' bits it has (also known as the Hamming weight).
Example 1:
Input: 00000000000000000000000000001011
Output: 3
Explanation: The input binary string 00000000000000000000000000001011 has a total of three '1' bits.
Example 2:
Input: 00000000000000000000000010000000 Output: 1 Explanation: The input binary string 00000000000000000000000010000000 has a total of one '1' bit.
Example 3:
Input: 11111111111111111111111111111101 Output: 31 Explanation: The input binary string 11111111111111111111111111111101 has a total of thirty one '1' bits.
题目大意:
给定一个二进制整数,判断其中1 的位数
理 解:
遍历判断每一位数字是否为1. n&1==1,累加;更新n = n>>1;至n = 0。
代 码 C++:
class Solution { public: int hammingWeight(uint32_t n) { int count = 0; while(n!=0){ if(n&1==1) count++; n = n>>1; } return count; } };
运行结果:
执行用时 :4 ms, 在所有C++提交中击败了94.78%的用户
内存消耗 :8.4 MB, 在所有C++提交中击败了5.21%的用户
Number of 1 Bits