1、思路概述:
在这里我们用到了按位与运算&。如,若要求n转二进制后的1的个数,那么我们将n和n-1进想按位与运算后对n进行更新,每更新一次1的个数就+1,最终得到1的个数。
2、代码实现:
public static void main(String[] args) {
int n=21;
}
public static int find1(int n){
/*将十进制数转换成二进制数后1的个数
* */
int count = 0;
while (n != 0) {
count++;
n = (n-1) & n;
}
// 5 0101
// 0100
// 0100
// 0011
// 0000
return count;
}