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