方法一:toBinaryString(n)
算出1的个数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
String s = Integer.toBinaryString(n);
for (int i = 0; i < s.length(); i++){
if (s.charAt(i) == '1'){
count++;
}
}
System.out.println(count);
}
算出0的个数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
String s = Integer.toBinaryString(n);
for (int i = 0; i < s.length(); i++){
if (s.charAt(i) == '0'){
count++;
}
}
System.out.println(count);
}
方法二:按位与
算出1的个数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
while (n != 0) {
count += n & 1;
n >>= 1;
}
System.out.println(count);
}
算出0的个数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
while (n != 0) {
if ( (n & 1) != 1 ){
count++;
}
n >>= 1;
}
System.out.println(count);
}