题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
分析:在内存中以二进制的形式存储,所有题目就是在问该正整数的二进制形式有多少个1
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
题目链接: 求int型正整数在内存中存储时1个个数
import java.util.Scanner;
public class Main{
public static void main(String[] args){
//输入一个正整数
Scanner sc = new Scanner(System.in);
int tmp = sc.nextInt();
//将该整型数转为二进制字符串
String str = Integer.toBinaryString(tmp);
//char[] ch = str.toCharArray();
int count = 0;
for(int i = 0; i < str.length(); i++){
//判断二进制字符串中单个字符是否为1
if(str.charAt(i) == '1'){
count++;
}
}
System.out.println(count);
}
}