题解 | 求int型正整数在内存中存储时1的个数
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
//10进制转2进制 Integer.toBinaryString()
//10进制转8进制 Integer.toOctalString()
//10进制转16进制 Integer.toHexString()
//10进制转任意进制 Integer.toString(n,3)
//2进制转10进制 Integer.parseInt(binaryString, 2)
//8进制转10进制 Integer.parseInt(octalString, 8)
//16进制转10进制 Integer.parseInt(hexString, 16)
Scanner sc = new Scanner(System.in);
//求解2进制中1的个数
//先把输入转换为二进制,将2进制中所有1转为空,用原数减去替换后的数字,值则为1的数量
int n = sc.nextInt();
String str = Integer.toString(n,2);
String newStr = str.replaceAll("1","");
System.out.println(str.length() - newStr.length());
}
}