C语言二进制转化为十进制源码

#include<math.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 33

int input(int);
char a[N];                                                              

main()
{
    int i,n,sum=0;
  
    n=input(1);
    for(i=n-1;i>=0;i--)                                                    //二进制输入检错
    {
        if((a[i]-'0')!=1&&(a[i]-'0')!=0)
            n=input(0);
    }

    for(i=n-1;i>=0;i--)                                                    //二进制转换十进制
        sum+=(a[i]-'0')*((int)pow(2,n-1-i));
    printf(">>转换后的十进制数为: %d ",sum);
    system("pause");
}

int input(int m)
{
    printf(">>%s输入一个二进制数: ",m?"请":"输入有误,请重新");
    scanf("%s",a);
    return strlen(a);

}

2011-01-10

原文地址:https://www.cnblogs.com/sagerking/p/6323705.html