思路:对于16进制的数利用字符串数组存储,利用for循环内嵌switch–case来识别每一个数,并将ABCDEF转化为对应的十进制的数,采用math.h中的pow函数求取对应的次方,并相加。
//math.h里面的pow函数作用:计算2的 3次方 pow(2,3) 2的3次方。
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
char s[9];
scanf("%s",s);
int len,i,temp;
len=strlen(s);
long long sum=0;
for(i=0;s[i]!='\0';i++){
switch(s[i]){
case 'A':temp=10;break;
case 'B':temp=11;break;
case 'C':temp=12;break;
case 'D':temp=13;break;
case 'E':temp=14;break;
case 'F':temp=15;break;
default:temp=s[i];
}
sum+=temp*pow(16,len-1-i);
}
printf("%lld",sum);
return 0;
}
*以上代码为学习内容
本学习内容仅为本人的个人心得*