【Leetcode】191. Number of 1 Bits(二进制数)(面试必备)

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。

解题思路:

 【Leetcode】191. Number of 1 Bits(二进制数)(面试必备)

减去一个1,并且执行与运算即可得到下一个1的位置。

 

class Solution {
public:
    int hammingWeight(uint32_t n) {
        int ans = 0;
        while(n!=0){
            ans++;
            n &= (n-1);
        }
        return ans;
    }
};

 

上一篇:[译] QUIC Wire Layout Specification - Frame Types and Formats | QUIC协议标准中文翻译(4) 帧类型和格式


下一篇:190. Reverse Bits