求二进制中1的个数
方法一:
将 数字对2取余看余数是否为1.如果为1,说明这位为1.
方法二:
使用位操作
java代码如下,可直接运行
package every;
import java.util.*;
public class second {
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
print("please input number");
int num = input.nextInt();
int result = 0;
while(num!=0)
{
result += num & 0x01;
num = num >> 1;
}
print("the result is " + result);
}
public static void print(String s)
{
System.out.println(s);
}
}
方法三:
来自编程之美,这种算法只和1的个数有关
比如10这个数的二进制位1010,9的二进制位1001,这二个数&之后,得到的是什么?没错 是1000。然后1000&0111为0000,结束,总共有2个1.