标签:tag exti can 算法基础 oid 位运算 next 练习 out
import java.util.Scanner;
public class _03_1的个数 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
System.out.println(Integer.toString(N, 2));
int count = 0;
//比对每一位,使比对的1向左移动
for (int i = 0; i < 32; i++) {
if ((N & (1 << i)) == (1 << i)) {
count++;
}
}
System.out.println(count);
//比对每一位,使需要比对的数字向右移
count = 0;
for (int i = 0; i < 32; i++) {
if (((N >>> i) & 1) == 1)
count++;
}
System.out.println(count);
//强大的解题方法,每次-1 and & 一次,就会消除1个二进制1
count = 0;
while (N != 0) {
N = ((N - 1) & N);
count++;
}
System.out.println(count);
}
}
N = ((N - 1) & N); 将会消除从低位到高位的二进制1
Tags:位运算
2021年2月15日
标签:tag exti can 算法基础 oid 位运算 next 练习 out
原文地址:https://www.cnblogs.com/btlord/p/14404282.html