首页 > 解决方案 > Java十进制到二进制的转换错误

问题描述

我现在正在做一个数字系统代码,并且在我的 decimalToBinary 上,每当我输入一个十进制数字时,无论它是什么十进制数字,它总是将它转换为 1。代码在这里。

public static void decimalToBinary() {

        do {    
            System.out.println("Enter your decimal number");
            numDecimal = input.nextInt();

            if (numDecimal < 0) {
                System.out.println("Enter a valid number!");
            }

        } while (numDecimal < 0);

        int intNum = Integer.valueOf(numDecimal);

        int counter = 0;

        binaryVal[counter++] = intNum % 2;
        intNum = intNum/2;

        for (int i = counter-1; i >= 0; i--) {
            System.out.println("Your binary number is " + binaryVal[i]);

        }

    }

标签: javaarraysbinarydecimal

解决方案


我建议您通过以下代码段更改代码,您还需要考虑创建binaryVal具有足够维度的数组,以保存将生成二进制转换的完整数字。

   do {
        binaryVal[counter++] = intNum % 2;
        intNum = intNum / 2;
    } while (intNum > 0);

    for (int i = counter - 1; i >= 0; i--) {
        System.out.print(binaryVal[i]);
    }

推荐阅读