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进行与运算,统计结果不为0的位数】
private String str;
private int num;
public int hammingWeight(int n) {
num=0;
str=Integer.toBinaryString(n);
for(int i=0;i<str.length();i++){
if(str.charAt(i)=='1'){
num++;
}
}
return num;
}
方法二:【每一位分别和1进行与运算,统计结果不为0的位数】
private int num;
public int hammingWeight(int n) {
num=0;
while(n!=0){
n&=(n-1);
num++;
}
return num;
}