16进制转10进制

先将16进制存放在字符数组中,再转化为数字

#include <stdio.h>
#include <string.h>
int main(){
char str[40];
while(scanf("%s",str)!=EOF){
int len=strlen(str);
int i,c=1,x;;
int tn=0;//表示10进制
for(i=len-1;i>=2;i–){//16进制i从第3位开始算起
if(str[i]>=‘a’&&str[i]<=‘f’){
x=str[i]-‘a’+10;
}
else if(str[i]>=‘A’&&str[i]<=‘F’){
x=str[i]-‘A’+10;
}
else {
x=str[i]-‘0’;
}
tn=tn+xc;
c=c
16;
}
printf("%d",tn);
}
}

猜你喜欢

转载自blog.csdn.net/ljh_mm/article/details/88549154