问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,len,t;
long long sum=0;
char a[10];
scanf("%s",a);
len=strlen(a);
for(i=0;i<len;i++)
{
t=i;
if(a[i]<='9')
{
t=a[i]-'0';//a[i]小于10则为数字字符直接转化为数字
}
else
{
t=a[i]-'A'+10;//a[i]大于10则为字符字符需减去A
}
sum=sum*16+t;//转化成10进制
}
cout<<sum;
return 0;
}