问答详情
源自:3-2 算术运算符

怎么写一个二进制转为十进制的程序?

能解释下么?谢谢。

提问者:慕尼黑4544913 2019-03-23 11:20

个回答

  • 大田酱紫
    2019-03-23 17:09:36

    #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));
    }

    这个程序只能计算无小数位的二进制数的十进制化,并且需要提供二进制数的位数,运用的是递归函数的方法,在下才疏学浅,只能弄这样鸟