我正在尝试创建一个将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));
}
答案 0 :(得分:2)
我认为循环中的条件不正确:
for(int tempDecimal=decimal;0==tempDecimal;tempDecimal/=2)
请注意,当tempDecimal等于0时,这会循环,这意味着循环不应该对非零输入进行循环,并且将永远循环以进行零输入。尝试将其重写为
for(int tempDecimal = decimal; 0 != tempDecimal; tempDecimal /= 2)
另外,注意0作为输入,负数作为输入;用你现在的方法来说,它们不会正确。
其他一些小屁股:
tempDecimal
。 Java参数按值传递,因此您对参数所做的更改不会显示在调用者中。由于您未在其他任何地方使用decimal
值,因此额外变量是多余的。希望这有帮助!