资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
代码如下蓝桥杯测试100通过
#include<bits/stdc++.h>
using namespace std;
long long shiliu_to_shi(string x)
{
int i,j=0,t;
long long sum=0;
for(i=x.length()-1;i>=0;i--)
{
if(x[i]=='0')t=0;
else if(x[i]=='1') t=1;
else if(x[i]=='2') t=2;
else if(x[i]=='3') t=3;
else if(x[i]=='4') t=4;
else if(x[i]=='5') t=5;
else if(x[i]=='6') t=6;
else if(x[i]=='7') t=7;
else if(x[i]=='8') t=8;
else if(x[i]=='9') t=9;
else if(x[i]=='A') t=10;
else if(x[i]=='B') t=11;
else if(x[i]=='C') t=12;
else if(x[i]=='D') t=13;
else if(x[i]=='E') t=14;
else if(x[i]=='F') t=15;
sum+=t*pow(16,j);
j+=1;
}
return sum;
}
int main()
{
string x;
cin>>x;
cout<<shiliu_to_shi(x);
return 0;
}