C语言:其他进制转换为十进制(方法二)
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
//其他任意进制转换为十进制
int main()
{
int trans(char a[],int );
char arr[100];
int t;
printf("请输入进制的类型:");
scanf("%d",&t);
printf("请输入该进制的数:");
scanf("%s",arr);
int num = trans(arr,t);
printf("该数的十进制是:%d\n",num);
return 0;
}
int trans(char chs[],int m)//转换为十进制
{
char *p = chs;
int len = strlen(p);
int temp,sum=0;
while(len>0)
{
char ss = toupper(*p);//直接调用库文件<ctype.h>的toupper()函数
if(ss>='0' && ss<='9')
{
temp = (ss-'0')*pow(m,len-1);//m表示进制类型(2、8、16)
sum = sum + temp;
}
if(ss>='A' && ss<='F')
{
temp = (ss-'A'+10)*pow(m,len-1);
sum = sum + temp;
}
p++;
len--;
}
printf("\n");
return sum;
}
程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!