题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入
0xA
0xAA
输出
10
170
code
#include "bits/stdc++.h"
using namespace std;
int hex2dec(string hex)
{
int res = 0;
string s = hex.substr(2,hex.size());
for(int i=s.size()-1; i>=0; --i){
int d = 0;
if(s[i]>='0'&&s[i]<='9')
d=s[i]-'0';
else {
d=s[i]-'A'+10;
}
res += (d*pow(16, s.size()-i-1));
}
return res;
}
int main()
{
string hex;
while(cin>> hex)
{
cout << hex2dec(hex) <<"\n";
}
return 0;
}