欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-04 20:04:19
...

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

 

相关标签: 二进制