0

正如标题所说,我试图在 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);
           }
       }
   }     
4

2 回答 2

1

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

如果要退货,则需要变速或动力,但要打印。

我建议您在调试器中单步执行代码,以便查看它在做什么。

于 2013-09-18T14:41:25.787 回答
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);  
}
于 2013-11-10T11:19:00.163 回答