簡體   English   中英

使用遞歸將十進制轉換為二進制

[英]Convert decimal to binary using recursion

我得到以下代碼:

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”而不是二進制字符串。 有人可以告訴我我在做什么錯嗎?

您應該返回bin變量:

else
    return bin;

你也想在前面加上 Integer.toString(number % 2)以前的字符串,而不是追加它:

return decToBin(number / 2, Integer.toString(number % 2) + bin);
else
    return "0";

我認為您可能是指return bin ,因為您正在累積到該字符串中。 您只是在當前的實現中丟棄bin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM