剑指Offer(Java版)第十三题:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。

/*请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
* 例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。
*/
public class Class13 {
public int findNumOfOne(int a){
int count = 0;
while(a != 0){
count++;
a = (a-1) & a;
}
return count;
}
public void test1(){
int b = 9; // 1001
System.out.println(findNumOfOne(b));
}
public void test2(){
int b = 13; // 1101
System.out.println(findNumOfOne(b));
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Class13 c = new Class13();
c.test1();
c.test2();
}

}

猜你喜欢

转载自www.cnblogs.com/zhuozige/p/12444344.html
今日推荐