我收到了以下代码:
public class decToBin {
public static void main(String args[]) {
int number = 32;
System.out.println(decToBinWrapper(number));
}
public static String decToBinWrapper(int number) {
return decToBin(number, "");
}
public static String decToBin(int number, String bin) {
if (number >= 1)
return decToBin(number / 2, bin + Integer.toString(number % 2));
else
return "0";
}
}
应该将十进制转换为二进制,但它只打印“0”而不是二进制字符串。有人可以告诉我,我做错了吗?
答案 0 :(得分:3)
您应该返回bin
变量:
else
return bin;
您还希望将 Integer.toString(number % 2)
添加到上一个字符串中,而不是追加它:
return decToBin(number / 2, Integer.toString(number % 2) + bin);
答案 1 :(得分:1)
else
return "0";
我认为您可能意味着return bin
,因为您正在积累到该字符串中。您只是放弃当前实施中的bin
。