Java--求数字的奇数位和偶数位

1、问题
给一个二进制序列,要求打印出奇数位和偶数位分别是什么
2、分析
比如说十进制数10再内存中存储32位,它的二进制为:0000 0000 0000 0000 0000 0000 0000 1010
奇数位:0000 0000 0000 0000
偶数位:0000 0000 0000 0011
那么这里所用到的方法就与&运算符,和右移运算符>>
那么来看一下方法的思路?
0000 0000 0000 0000 0000 0000 0000 1010
for循环i遍历这个数字
让这个数字右移i位,再&1,比如说右移32位那么得到的就是32位也是奇数位的数字&1,是0就是0,是1就是1
奇数位为0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
偶数位为0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
3、代码演示

package demomethod03;

import java.util.Scanner;

/**
 *
 * 给一个二进制序列,要求打印出奇数位和偶数位分别是什么
 * 0000 1010    奇数位:0011   偶数位:0000
 */
public class PrintNum {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要求的十进制数:");
        int n=sc.nextInt();
        for(int i=31;i>=1;i-=2){
            System.out.print(((n>>i)&1)+" ");

        }
        System.out.println();
        for(int i=30;i>=0;i-=2){
            System.out.print(((n>>i)&1)+" ");

        }
    }
}

4、运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Subuprogrammer/article/details/104772457