又是一年笔试时,很多学弟们开始笔试了。今天学弟问求一个int数的1个数。
分析:
除法+最后一次取余就能得到了。
或者是移位+与运算
粘一个第二种方法的代码:
public class getOneCount {
public static void main(String[]args){
int n=123;
getOneCount(n);
}
public static void getOneCount(int n){
int count=0;
for(int i=31;i>=0;i--){
if(((1<<i)&n)!=0)
count++;
}
System.out.println(count);
}
}
如果是long的话 把左移位数改为63开始就可以 也就是i=63。