欢迎各位点赞👍评论✍收藏⭐
目录
1. 题目
输入一个数,请分别打印这个数二进制的奇数位和偶数位
例:15 二进制(整型): 00000000 00000000 00000000 00001111
偶数位:1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
奇数位:1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2. 分析
- 首先要写出这个数的二进制序列
- 想一想怎么打印二进制的位数,这里我们就要用移位操作符 ( >> / << ),显然我们用右移操作符
- 那如何取出二进制位呢?
- 这里我们用公式( ret & 1 )就可以取出二进制的第一位数
- 接下来用循环依次右移打印即可
操作符 &(二进制操作) :相同为 1 ,相异为 0
注意:二进制序列第一位(从右向左)为偶数位,这里很多人都搞错了
3. 代码实现
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //从键盘获取数字
int ret = scanner.nextInt();
System.out.println("偶数");
for(int i = 0; i <= 30; i = i + 2) { //注意:i = i + 2 才能输出偶数位
System.out.print(((ret >> i) & 1)+" "); //每次取出一位,在右移,依次循环
}
System.out.println(); //换行
System.out.println("奇数");
for(int j = 1; j <= 31; j = j + 2) {
System.out.print(((ret >> j) & 1)+" "); //每次取出一位,在右移,依次循环
}
System.out.println();
}
}
3.1 运行结果
4. 小结
以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!