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

解题思路:

 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;
    }
};

 

版权声明:本文为qq_29600137原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29600137/article/details/90215568