十六进制转十进制
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
#include<iostream>
#include<string>
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
int len;
while(cin>>s)
{
long long int sum=0;
len=s.length();
for(int i=0;i<len;i++)
{
if(s[i]-'0'<=9)
sum+=(s[i]-'0')*pow(16,len-1-i);
else if(s[i]=='A')
sum+=10*pow(16,len-1-i);
else if(s[i]=='B')
sum+=11*pow(16,len-1-i);
else if(s[i]=='C')
sum+=12*pow(16,len-1-i);
else if(s[i]=='D')
sum+=13*pow(16,len-1-i);
else if(s[i]=='E')
sum+=14*pow(16,len-1-i);
else
sum+=15*pow(16,len-i-1);
}
cout<<sum<<endl;
}
return 0;
}