java - 在 Java 中从十进制转换为二进制

标签 java recursion methods binary

所以我有将十进制数转换为二进制数的代码。我使用递归算法,但是我似乎无法让它做我想做的事。这是代码:

import java.util.*;

public class binaryAddition {

    public static int toBinary(int a){


        int bin = 0;
        int remainder = 0;
        if(a >= 1){
            toBinary(a/2);
            bin = (a%2);
        }

        return bin;


    }

    public static void main(String[] args){

        System.out.println(toBinary(3));
        System.out.print(toBinary(3));
    }
}

所以我想返回二进制解决方案,以便我可以将其保存为主方法中的变量。但是,我当前的输出只能给出二进制数的最后一位数字。我使用数字 3 作为测试用例,并得到 1 作为 print 和 println 方法的输出。为什么会这样,我该如何解决它?

非常感谢!

最佳答案

首先,您可能希望让 toBinary 返回一个 String,而不是 int。那么你在递归的时候就必须使用它的结果。所以你可以在你的 if 里面写,

bin = toBinary(a / 2) + (a % 2);

当然,假设toBinary返回String

如果您不这样做,那么您只是丢弃了计算结果。

关于java - 在 Java 中从十进制转换为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25796444/

相关文章:

java - 遇到已弃用的 javax.persistence.spi.PersistenceProvider

java - Android 使用 Intent 来控制媒体播放器?

C - 循环遍历所有可能的小写字符串

python - 最大递归,GCD(最大公约数)

ios - 当全局变量的值发生变化时如何启动方法?

java - 使用 lobo 浏览器未找到可响应的客户端

java - 使用相同套接字或不同套接字进行多个连接的区别

javascript - 如何确保递归函数在返回之前不会再次被调用

asp.net - 是否可以通过 ASPX 页面调用方法背后的 Silverlight 代码?

Java:WAITINGActionEvent