使用递归技术将二进制数转换为十进制

时间:2013-09-18 14:24:51

标签: 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=0;
           if(a>0){
               p=a%10;
               x=x+p*(int)Math.pow(2,k);
               k++;
               spawn(a/10);
           } else {
               System.out.print(x);
           }
       }
   }     

2 个答案:

答案 0 :(得分:1)

问题是你没有使用spawn的结果,无论是返回还是打印它。

如果你想要退货,你需要换挡或动力,但你要打印它。

我建议您逐步调试调试器中的代码,以便了解它的作用。

答案 1 :(得分:0)

这是一个工作计划。

参数是(二进制代码,代码-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);  
}