写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
1.傻瓜式解法:
#include<iostream>
#include<string>
#include<unordered_map>
#include<cmath>
using namespace std;
/*
int main()
{
string str = "";
unordered_map<char, int> hashmap;
char bit[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for (int i = 0; i < 16; ++i)
{
hashmap[bit[i]] = i;
}
while (cin >> str)
{
int bitn = 0;
int ans = 0;
for (int i = str.length()-1; i >=2; --i)
{
ans += hashmap[str[i]] * pow(16, bitn);
++bitn;
}
printf("%d\n", ans);
}
return 0;
}
2.投机取巧,羞死人的解法
#include<iostream>
using namespace std;
int main()
{
int x;
while (scanf("%x",&x)!=EOF)//scanf(“格式控制字符串”, 地址表列);
printf("%d\n", x);
return 0;
}