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.A:
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int res = 0; while(n != 0){ res++; n = n&(n-1); } return res; } }
//
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int count = 0;
for(int i =0;i<32;i++){
if( ( n & (1<<i) ) != 0)
count++;
}
return count;
}
}
Mistakes:
1: 开始都转换成long类型。来处理负值。但那样是不对的。
No comments:
Post a Comment