public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int div=1;
int num=0;
for(int i=0;i<32;i++) {
//当指针和当前数字的二进制位数相同时,计数增加
if((div & n)!=0) num++;
//将指针移位
div=div << 1;
}
return num;
}
}
详细理解可以参考:位运算学习(一)–加 “两道只出现一次的数字”的习题