题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
解题思路
- 基础知识
pow(x, n)函数,属于math.h头文件中的函数,其作用是求x的n次方
字符相减,得到的是两字符ASCII码之间的差
- 具体应用
看代码,很简单
代码示例
#include <string>
#include <iostream>
#include <math.h>
using namespace std;
int main() {
string str;
while (cin >> str) {
int res = 0;
if (str.substr(0, 2) == "0x") {
for (int i = 2; i < str.length(); i++) {
if (str[i] >= '0' && str[i] <= '9') res += (str[i] - '0') * pow(16, str.length() - i - 1);
else if (str[i] >= 'A' && str[i] <= 'F') res += (str[i] - 'A' + 10) * pow(16, str.length() - i - 1);
}
}
cout<<res<<endl;
}
return 0;
}