我正在尝试创建一种将Decimal转换为Binary的方法。这是我到目前为止写的(无法正常工作):

public static String D2B(int decimal){
    String binaryValue="";
    for (int tempDecimal=decimal;0==tempDecimal;tempDecimal/=2){
        binaryValue=tempDecimal%2+binaryValue;
    }
    return binaryValue;
}


public static void main(String[]args){
    int myValue=127;
    System.out.println(D2B(myValue));
}

最佳答案

我认为您的循环条件不正确:

for(int tempDecimal=decimal;0==tempDecimal;tempDecimal/=2)


请注意,这会在tempDecimal等于0时循环,这意味着对于非零输入,该循环根本不应循环,而对于零输入,该循环将永远循环。尝试将其重写为

for(int tempDecimal = decimal; 0 != tempDecimal; tempDecimal /= 2)


另外,要注意输入0和输入负数。他们将无法正确使用您当前的方法。

其他一些未成年人:


我强烈建议您正确缩进代码,并在运算符之间放置空格以提高可读性。它使代码更易于阅读,而且如果您有更多空间,我想您会更容易发现该错误。
没有理由在此函数中创建第二个变量tempDecimal。 Java参数是按值传递的,因此您对参数所做的更改不会显示在调用方中。由于您没有在其他任何地方使用decimal值,因此多余的变量是多余的。


希望这可以帮助!

10-07 20:44