作业内容:求一个整数,在内存当中存储时,二进制1的个数。
编程软件:IDEA
代码:
public class TestDemo {
public static void main(String[] args) { //psvm main函数的快捷键
//判断整数中2进制1的个数
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
//以整数15为例 15 - 0000 1111
// 0000 1111 - 15
// & 0000 0001 - 1
// 0000 0001 若与1不为0 count++;
// 0000 0111 - 15 右移一位之后继续判断
// & 0000 0001 - 1
// 0000 0001 若不为0 count++;
//依次右移与1判断,直至为0
int count = 0;
for(int i=0;i<32;i++) { //一共要移32次
if(((n >> i) & 1) == 1) { //i是右移的位数,右移之后与1看结果是否是1
count++;
}
}
System.out.println("count:"+ count);
}
}
结果:

本文介绍了一种使用Java编程语言在IDEA环境下计算任意整数二进制表示中1的个数的方法。通过循环右移位运算并进行与操作,逐位检查整数的每一位是否为1,最终统计出所有1的总数。

366

被折叠的 条评论
为什么被折叠?



