LeetCode-191. Number of 1 Bits

Write a function that takes an unsigned integer and returns the number of '1' bits it has (also known as the Hamming weight).

Example 1:

Input: 11
Output: 3
Explanation: Integer 11 has binary representation 00000000000000000000000000001011 

Example 2:

Input: 128
Output: 1
Explanation: Integer 128 has binary representation 00000000000000000000000010000000

分析

这是一个明显的位运算的问题,尤其是实例中的解释的问题,尤其显示为对位进行的操作,因此这里有一个简单的方法,时间复杂度比较的低,对最后一位进行按位与运算。

C语言代码

int hammingWeight(uint32_t n) {
    int normal=0;
    while(n)
    {
//        对n和1求位运算 指定最后一位为1的位运算
        if(n & 1)
        {
            ++normal;
        }
//        对n进行向右移动
        n>>=1;
    }
    return normal;

}
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注