问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
代码:
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
char a[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char s[8];
cin>>s;
int len = strlen(s);
long long int dec = 0;
long long int temp = 1;
int j;
for(int i = len - 1;i >= 0;i--)
{
for(j = 0;j < 16;j++)
{
if(s[i] == a[j])
{
break;
}
}
dec += temp * j;
temp *= 16;
}
cout<<dec;
return 0;
}