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