使用递归将十进制转换为二进制

时间:2015-02-08 02:44:05

标签: java

我收到了以下代码:

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”而不是二进制字符串。有人可以告诉我,我做错了吗?

2 个答案:

答案 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