[英]Converting From Decimal to Binary In Java
所以我有将十进制数转换为二进制的代码。 我为此使用了递归算法,但是似乎无法让它完成我想要的事情。 这是代码:
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));
}
}
因此,我想返回二进制解决方案,以便可以将其另存为main方法中的变量。 但是,我当前的输出只会给我二进制数字的最后一位。 我将数字3用作测试用例,并获得1作为print和println方法的输出。 为什么会这样,我该如何解决?
非常感谢!
首先,您可能需要toBinary
返回String
,而不是int
。 然后,在递归时必须使用它的结果。 因此,您可以在if
写,
bin = toBinary(a / 2) + (a % 2);
当然,假设toBinary
返回String
。
如果您不这样做,那么您将丢弃计算结果。
该代码将丢弃递归调用的结果。
在方法中使用toBinary
的结果进行操作。
就像我做完一样。
public static void main(String[] args)
{
int n, count = 0, a;
String x = "";
Scanner s = new Scanner(System.in);
System.out.print("Enter any decimal number:");
n = s.nextInt();
while(n > 0)
{
a = n % 2;
if(a == 1)
{
count++;
}
x = x + "" + a;
n = n / 2;
}
System.out.println("Binary number:"+x);
System.out.println("No. of 1s:"+count);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.