#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(">>轉換后的十進制數為:\n%d\n",sum);
system("pause");
}
int input(int m)
{
printf(">>%s輸入一個二進制數:\n",m?"請":"輸入有誤,請重新");
scanf("%s",a);
return strlen(a);
}
2011-01-10