十进制到二进制转换器循环问题

时间:2013-10-21 01:06:31

标签: java loops for-loop

我的十进制到二进制转换器有问题。我正在使用String来获取一个数字然后我运行循环来寻找'1'。它完成了这项工作,但最后打印了太多的零。任何想法我应该寻找什么来摆脱过多的0?

System.out.print("Please enter Decimal number: ");
    int decimalNum = kybd.nextInt();

    power = 0;
    expo = 2;
    sum = 0;
    String finalNumber = "";

    for (int i = decimalNum; i >= 1; i--)
    {
        if(decimalNum%2 != 0)
        {
            finalNumber += '1'; 
        }
        else
            finalNumber += '0';


    decimalNum = decimalNum/2;

    }//end of decimalLoop

    for(int i = finalNumber.length()-1; i>=0; i--)
    {
        if(finalNumber.charAt(i)== '1')
        {
            //finalNumber = finalNumber + finalNumber.charAt(i);
            System.out.print(finalNumber.charAt(i));
        }
        else
            //finalNumber = finalNumber + finalNumber.charAt(i);
            System.out.print(finalNumber.charAt(i));
    }

请输入十进制数:10

0000001010

1 个答案:

答案 0 :(得分:0)

我假设您在提供的问题中从十进制转换为二进制。

有很多不必要的代码。你应该删除额外的变量。另外,我在最后一个循环中没有看到if-else的意思。实际的错误在于第一个for循环。它可以被转换为while循环,而不是你用来递减1和潜水2的逻辑。你正在做的是分配i = decimalNum然后除decimalNum/2并将i减1 {{1 }}。因此对于10,我将是10,4,1而不是10,5,2,1

i--