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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坊钰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值