试题 基础练习 十六进制转十进制
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入
FFFF
样例输出
65535
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
string s="";
cin>>s;
int l1=s.length();
long long sum=0;//存储最终的结果
int t=0;//进制
for(int i=l1-1;i>=0;i--)
{
if(s[i]>='A'&&s[i]<='F')
{
sum+=((s[i]-'A')+10)*(pow(16,t++));
}
else
{
sum+=(s[i]-'0')*(pow(16,t++));
}
}
cout<<sum<<endl;
return 0;
}