版权声明:博客内容为本人自己所写,请勿转载。 https://blog.csdn.net/weixin_42805929/article/details/82846489
求int型正整数在内存中存储1的个数 java
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
5
输出
2
代码1:
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n >= 0){
int count = 0;
while(n != 0){
if(n % 2 != 0){
count++;
}
n = n / 2;
}
System.out.println(count);
}
}
}
代码2:
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n > 0){
//用于统计二进制中1的个数
System.out.println(Integer.bitCount(n));
}
}
}
代码3:
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n > 0){
int count = 0;
//以二进制无符号整数形式返回一个字符串
String st = Integer.toBinaryString(n);
char[] c = st.toCharArray();
for(int i = 0; i < c.length; i++){
if(c[i] == '1'){
count++;
}
}
System.out.println(count);
}
}
}