一.写一个函数返回参数二进制中1的个数
主要思路如下:
第一种方法
/**
* 1.打断点:让代码走到这一步,停下来
* 2.开始调试,点击甲壳虫
*/
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int count=0;
for(int i=0;i<32;i++){
if(((n>>i)&1)==1){
count++;
}
}
System.out.println("count: "+count);
}
}
运行结果如下:
这里顺便介绍一下断点调试:
1.鼠标放到要调试的地方,点击左键,出现断点
2.点击甲壳虫开始调试,并输入一个值
3.点击最左边的箭头,开始往下执行
4.输入n=15,一步一步往下执行,得到count=4
以上就是断点的使用方法,下面接着分析这道题目
第二种方法
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int count=0;
while(n!=0){
n=n&n-1;
count++;
}
System.out.println("count: "+count);
}
}
运行结果如下:
二.获取一个二进制中所有偶数位和奇数位
方法和上面类似
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
for(int i=31;i>=1;i=i-2){
System.out.print(((n>>i)&1)+" ");
}
System.out.println();
for(int i=30;i>=0;i=i-2){
System.out.print(((n>>i)&1)+" ");
}
}
}