能解释下么?谢谢。
#include<stdio.h>
#include<math.h>
int A(int n,int a)
{
int sum;
if(n==0)
{
return 0;
}
else
{
sum=(int)pow(2,n-1)*(a/((int)pow(10,n-1)))+A(n-1,a%((int)pow(10,n-1)));
}
return sum;
}
main()
{
int n,a;
printf("输入的二进制数的位数:");
scanf("%d",&n);
printf("二进制数:");
scanf("%d",&a);
printf("对应的十进制数:%d",A(n,a));
}
这个程序只能计算无小数位的二进制数的十进制化,并且需要提供二进制数的位数,运用的是递归函数的方法,在下才疏学浅,只能弄这样鸟