题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有两个1。因此,如果输入9,则该函数输出2.
思路:数n和(n-1)进行与运算,则会消除一个1,如1100和1011与运算后为1000,精彩。
解决方案:
public class Question15 {
public static int NumberOf1(int n){
int count = 0;
while (n != 0){
++ count;
n = (n - 1) & n;
}
return count;
}
public static void main(String[] args) {
System.out.println(NumberOf1(3));
}
}
网友评论