Java-将十进制转换为二进制-整数-递归函数

Java-将十进制转换为二进制-整数-递归函数,java,binary,decimal,Java,Binary,Decimal,嘿,我真的想把十进制整数转换成二进制整数,但没有成功 请帮帮我 我不想让它成为“System.out.println()”,因为我已经做过了 谢谢 `我需要一个递归函数,它获取十进制整数并返回二进制整数 public static void decToBin(int number) { if(number == 0) return ; decToBin(number / 2); System.out.print(number % 2); } 这就是我所做

嘿,我真的想把十进制整数转换成二进制整数,但没有成功

请帮帮我

我不想让它成为“System.out.println()”,因为我已经做过了

谢谢

`我需要一个递归函数,它获取十进制整数并返回二进制整数

public static void decToBin(int number) {
    if(number == 0)
        return ;
    decToBin(number / 2);
    System.out.print(number % 2);
}
这就是我所做的

当我尝试获取字符串时:

public static String decToBin(int number) {
    if(number == 0)
        return "";
    return new Integer(number % 2).toString() + new Integer(decToBin(number / 2)).toString();
}
错误

public static String decToBin(int number) {
    if(number == 0)
        return "";
    return new Integer(number % 2).toString() + new Integer(decToBin(number / 2)).toString();
}
这种方法几乎没有缺点

  • 首先,您不能使用
    作为
    新整数(“”
    的参数,因为
    不包含任何值,因此您将看到NumberFormatException

  • 另一个问题是生成结果的顺序<代码>编号%2应放在
    decToBin(编号/2)
    的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它

    decToBin(number / 2);
    System.out.print(number % 2);
    
  • 最后,在返回语句中,您正在创建新字符串,因此要生成
    “100101”
    ,您将生成
    “1”
    “01”
    “101”
    0101”
    “00101”
    ,最后生成“
    100101”“
    。为了避免这种情况,请使用
    StringBuilder
    及其
    append
    方法

这种方法几乎没有缺点

  • 首先,您不能使用
    作为
    新整数(“”
    的参数,因为
    不包含任何值,因此您将看到NumberFormatException

  • 另一个问题是生成结果的顺序<代码>编号%2应放在
    decToBin(编号/2)
    的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它

    decToBin(number / 2);
    System.out.print(number % 2);
    
  • 最后,在返回语句中,您正在创建新字符串,因此要生成
    “100101”
    ,您将生成
    “1”
    “01”
    “101”
    0101”
    “00101”
    ,最后生成“
    100101”“
    。为了避免这种情况,请使用
    StringBuilder
    及其
    append
    方法

这种方法几乎没有缺点

  • 首先,您不能使用
    作为
    新整数(“”
    的参数,因为
    不包含任何值,因此您将看到NumberFormatException

  • 另一个问题是生成结果的顺序<代码>编号%2应放在
    decToBin(编号/2)
    的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它

    decToBin(number / 2);
    System.out.print(number % 2);
    
  • 最后,在返回语句中,您正在创建新字符串,因此要生成
    “100101”
    ,您将生成
    “1”
    “01”
    “101”
    0101”
    “00101”
    ,最后生成“
    100101”“
    。为了避免这种情况,请使用
    StringBuilder
    及其
    append
    方法

这种方法几乎没有缺点

  • 首先,您不能使用
    作为
    新整数(“”
    的参数,因为
    不包含任何值,因此您将看到NumberFormatException

  • 另一个问题是生成结果的顺序<代码>编号%2应放在
    decToBin(编号/2)
    的结果之后,就像您在第一个示例中所做的那样,在递归调用decToBin后打印它

    decToBin(number / 2);
    System.out.print(number % 2);
    
  • 最后,在返回语句中,您正在创建新字符串,因此要生成
    “100101”
    ,您将生成
    “1”
    “01”
    “101”
    0101”
    “00101”
    ,最后生成“
    100101”“
    。为了避免这种情况,请使用
    StringBuilder
    及其
    append
    方法

void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}
void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}
void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}
void intToBinary(int num){
if(num<2){
系统输出打印(num);
返回;
}否则{
国际旅行社(num/2);
intToBinary(数量%2);
}
}

这有点陈旧,但为了参考和给出正确答案,您需要这样做:

public static String dec2Bin(int num) {

    String result = ((num % 2 == 0) ? "0" : "1");

    if (num == 0 || num == 1) {
        return result;
    }

    return dec2Bin(num/2) + result;
}

这有点陈旧,但为了参考和给出正确答案,您需要这样做:

public static String dec2Bin(int num) {

    String result = ((num % 2 == 0) ? "0" : "1");

    if (num == 0 || num == 1) {
        return result;
    }

    return dec2Bin(num/2) + result;
}

这有点陈旧,但为了参考和给出正确答案,您需要这样做:

public static String dec2Bin(int num) {

    String result = ((num % 2 == 0) ? "0" : "1");

    if (num == 0 || num == 1) {
        return result;
    }

    return dec2Bin(num/2) + result;
}

这有点陈旧,但为了参考和给出正确答案,您需要这样做:

public static String dec2Bin(int num) {

    String result = ((num % 2 == 0) ? "0" : "1");

    if (num == 0 || num == 1) {
        return result;
    }

    return dec2Bin(num/2) + result;
}


请告诉我们您尝试了什么。您的代码有什么问题?您是否得到一些错误/不正确的结果?或者您只是要求我们将其重写为其他不使用
System.out.println
的内容?是的,我希望它是字符串或int。。。请再次查看我的编辑。为什么需要递归?结果必须使用
String
<代码>StringBuilder
将更易于使用。请向我们展示您的尝试。您的代码有什么问题?您是否得到一些错误/不正确的结果?或者您只是要求我们将其重写为其他不使用
System.out.println
的内容?是的,我希望它是字符串或int。。。请再次查看我的编辑。为什么需要递归?结果必须使用
String
<代码>StringBuilder将更易于使用。请向我们展示