Java基本编程题——十进制转二进制题

十进制转二进制

这种经典的题目怎么不去写一写呢?

拿到这道题的思路如下:
因为二进制的特殊性,不是0就是1,所以一个if判断就可以了,其他的问题都是细节补充了(其实都是我想简单了)。

题析

(1)需要一个数组来接收值并打印出来。
(2)为了节约空间,还有在数组逆输出的时候,那些置0的就很容易引起困扰,所以要在使用数组之前,需要确定大小的。
(3)其余为细节问题。

代码

package Day2;

import java.util.Scanner;

public class twoHuanSuan {
    public static void main(String[] args) {
        System.out.println("===============");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int b = 0;
        int s = num;
//        判断该十进制的数字转二进制的长度
        while (s > 0) {
            b++;
            s = s / 2;
        }
//        可以确定数组长度了
        int[] aa = new int[b];
        for (int i = 0; i < b; i++) {
//            不能被2除尽的肯定是1了,数组aa自动写入1,剩下就是除的尽了,数组自动写入0
            if (num % 2 != 0) {
                num = num / 2;
                aa[i] = 1;
            } else {
                num = num / 2;
                aa[i] = 0;
            }
        }
//        循环逆顺序打印出数组aa
        for (int i = 0; i < aa.length; i++) {
            System.out.print(aa[aa.length - i - 1]);

        }
    }
}

就这样了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值