题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
while (getline(cin, str))
{
if (str.compare(0, 2, "0x") == 0)
{
int tempNum = 0;
for (int i = 2; i < str.size(); i++)
{
if (str.at(i) >= 'A' && str.at(i) <= 'F')
{
tempNum = 16 * tempNum + (str.at(i) - 'A' + 10);
}
else if (str.at(i) >= '0' && str.at(i) <= '9')
{
tempNum = 16 * tempNum + (str.at(i) - '0');
}
else
{
return -1;
}
}
string outputNum = to_string(tempNum);
cout << outputNum.c_str() << endl;
}
}
return 0;
}