资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
#include<stdio.h>
#include<string.h>
#include<math.h>
int tran();
int tran(char c){
if(c=='0') return 0;
if(c=='1') return 1;
if(c=='2') return 2;
if(c=='3') return 3;
if(c=='4') return 4;
if(c=='5') return 5;
if(c=='6') return 6;
if(c=='7') return 7;
if(c=='8') return 8;
if(c=='9') return 9;
if(c=='A') return 10;
if(c=='B') return 11;
if(c=='C') return 12;
if(c=='D') return 13;
if(c=='E') return 14;
if(c=='F') return 15;
}
int main(){
char h[100];//A[0]
scanf("%s",&h);
int l=strlen(h);
int i;
int s=l;
long long int d=0;
for(i=0;i<s;i++){
d=d+tran(h[i])*pow(16,l-1);
l--;
}
printf("%lld\n",d);
return 0;
}