用于十进制转换的java函数不正确?
我正在尝试创建一个将十进制转换为二进制的方法。以下是我到目前为止写的内容(工作不正常):
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));
}
# 1 楼答案
我认为您循环中的条件不正确:
注意,当tempDecimal等于0时,该循环会循环,这意味着对于非零输入,该循环根本不应循环,而对于零输入,该循环将永远循环。尝试将其改写为
另外,注意0作为输入,负数作为输入;用你目前的方法,他们不会得出正确的结论
其他一些次要问题:
tempDecimal
。Java参数是按值传递的,因此对参数所做的更改不会显示在调用方中。由于您没有在其他任何地方使用decimal
值,因此额外的变量是多余的李>希望这有帮助