自学内容网 自学内容网

【Java SE 题库】输出一个数的二进制的奇数位和偶数位

 🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

目录

 1. 题目

2. 分析

3. 代码实现

 3.1 运行结果

4. 小结


 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. 小结

以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!


原文地址:https://blog.csdn.net/Gao123456fy/article/details/142815832

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!