题目描述:
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.
中文理解:给定一个整数,给出这个整数二进制表示中的1的个数。
解题思路:将n与1位与操作,若结果为1,则1个个数+1,否则不变,n>>1。
代码(java):
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int res=0;
for(int i=0;i<32;i++){
if((n&1)==1)res++;
n=n>>1;
}
return res;
}
}