题: 输入一个无符号整数 如1011111110001111 得到这个数字有多少个’1’
如 输入 10101 返回3
思路 : 循环32次 每次右移一位 判断个位数是否为1 累计个位数为1的次数
代码实现:
public int num(int i){
int count = 0;
for(int j=0;j<32;j++){
count += ((i&1)==1)?1:0;
i = i>>1;
}
return count;
}
题: 输入一个无符号整数 如1011111110001111 得到这个数字有多少个’1’
如 输入 10101 返回3
思路 : 循环32次 每次右移一位 判断个位数是否为1 累计个位数为1的次数
代码实现:
public int num(int i){
int count = 0;
for(int j=0;j<32;j++){
count += ((i&1)==1)?1:0;
i = i>>1;
}
return count;
}