Java 用递归技术实现二进制数到十进制数的转换
正如标题所说,我试图在java中使用递归技术将二进制转换为十进制,但我无法获得所需的输出 这就是我所做的Java 用递归技术实现二进制数到十进制数的转换,java,recursion,binary,decimal,Java,Recursion,Binary,Decimal,正如标题所说,我试图在java中使用递归技术将二进制转换为十进制,但我无法获得所需的输出 这就是我所做的 public class deci { public static void main(String args[]){ hexa s1=new deci(); s1.spawn(11000); } void spawn(int a){ int p=0;int x=0;int k=
public class deci {
public static void main(String args[]){
hexa s1=new deci();
s1.spawn(11000);
}
void spawn(int a){
int p=0;int x=0;int k=0;
if(a>0){
p=a%10;
x=x+p*(int)Math.pow(2,k);
k++;
spawn(a/10);
} else {
System.out.print(x);
}
}
}
问题是您没有使用spawn的结果,或者返回或打印它 如果你想退回它,你需要换档或动力,但你想打印它
我建议您在调试器中单步执行代码,以便查看它正在执行的操作。这是一个工作程序 参数为(二进制代码,代码大小为-1),例如,对于(111,2),这将返回7
int binaryToDecimal(int binary,int size){
if(binary==0) return 0;
return binary%10*(int)Math.pow(2,size)+binaryToDecimal((int)binary/10,size-1);
}
期望的输出是什么?你得到了什么输出?努力吧,伙计。我得到的是00110而不是12。那么这段代码到底有什么问题呢?好吧,你没有把k的值传递给任何地方,所以它总是0。@Sigma我不会为你写出代码,但我可以帮你。我已经提到你增加了“k”,但从来没有用它做过任何事情。