计算无符号整形数中 the number of ‘1’ bit,
这道题很基础,用到几个运算符,&,>>>
第一种利用java函数法
/*
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.
*/
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
return Integer.bitCount(n);
}
}
接下来两种:
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int x) {
int count = 0;
while(n != 0) {
count += n&1;
n = n>>>1;
}
return count;
}
}
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int x) {
int count = 0;
while(n != 0) {
if(n%2 != 0) count ++;
n = n>>>1;
}
return count;
}
}
一天一题(虽然很菜,但要坚持嘛)
参考资料: