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

新手上路,请多包涵

我试图通过递归简单地转换为二进制。我在返回声明时遇到问题。这会编译但在运行时会出现溢出错误。我不知道要返回什么(或者如果我的陈述是错误的)来防止这个错误。

谢谢!

 public static String convertToBinary(int number)
{
  if(number > 0)
    {
      convertToBinary(number / 2);
      convertToBinary((number % 2 ));
     }

   return convertToBinary((number));
}

原文由 user1315954 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 444
1 个回答

我相信你的问题是在 number/2 和 number%2 上调用 convertToBinary。这段代码对我来说很好用,与你所拥有的没有什么不同:

 import java.util.Scanner;

public class DecToBin {

public static void main(String[] args) {

    int input;
    Scanner scan = new Scanner(System.in);

    System.out.print("Enter number to convert to binary: ");
    input = scan.nextInt();
    convert(input);

}

public static void convert(int num) {
    if (num>0) {
        convert(num/2);
        System.out.print(num%2 + " ");
    }
}

}

原文由 Chris 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题