1. 程式人生 > >LeetCode(191)Number of 1 Bits

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).

For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

分析

求整數對應二進位制串中1的個數。

程式碼

class Solution {
public:
    int hammingWeight(uint32_t n) {
        int ret = 0;  
        while(n != 0)  
        {  
            ++ret;  
            n &= (n-1); //抹掉最右邊的1  
        }//while  
        return ret;  
    }
};