题目描述:
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
原理分析:
输入的是字符串,要转换成整数。将字符‘0’~‘9’,‘A’~‘F’转化成对应的数字。不能直接转换,可通过做减法来实现。例如:1=‘1’-‘0’;11='B'-'A'+10.
编程语言:C++
代码实现:
#include <iostream>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
void sixteen_to_ten(string s);
int main()
{
string s;
while (cin >> s)
sixteen_to_ten(s);
return 0;
}
void sixteen_to_ten(string s)
{
int num = 0;
for (int i = 2; i < s.size(); i++)
{
if (s[i] >= 'A' && s[i] <= 'F')
num = num * 16 + (s[i] - 'A' + 10);
else
num = num * 16 + (s[i] - '0');
}
cout << num << endl;
}