PTA 7-14 十六进制转十进制
分数 5
作者 李祥
单位 湖北经济学院
请编写程序,输入十六进制数,输出对应的十进制数。
输入格式
十六进制非负整数
输出格式
对应的十进制非负整数
输入样例
13Ba
输出样例
5050
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
#include<stdio.h>
int main(){
char s[50];
scanf("%s", s);
int t;
long sum = 0;
for (int i = 0; s[i]; i++) {
if (s[i] <= 'z' && s[i] >= 'a'){
t=s[i] - 'a' + 10; //'a'的ascii码为97 , 加上10就是10以上的数的真正数字
}else if(s[i] <= 'Z' && s[i] >= 'A'){
t = s[i] - 'A' + 10; //'A'的ascii码为65 , 加上10就是10以上的数的真正数字
}else{
t= s[i]-'0'; //'0'的ascii码为48,这个就是十以下的真正数字数
}
sum = sum * 16 + t; //十六进制转换和
}
printf("%ld\n", sum);
return 0;
}