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