概述
题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例1
输入
0xA
输出
10
#include <iostream>
#include <string>
#include <map>
#include <cmath>
using namespace std;
map<char, int> m = {{'A', 10},
{'B', 11},
{'C', 12},
{'D', 13},
{'E', 14},
{'F', 15}};
int convert(string s) {
string str = "";
int len = s.length();
int result = 0;
for (int i = len - 1; i >= 2; --i) {
if (isdigit(s[i])) {
result += (s[i] - '0') * pow(16, len - 1 - i);
} else {
result += m[s[i]] * pow(16, len - 1 - i);
}
}
return result;
}
int main() {
string s;
while (cin >> s) {
cout << convert(s) << endl;
}
return 0;
}
最后
以上就是野性招牌为你收集整理的华为笔试题:进制转换的全部内容,希望文章能够帮你解决华为笔试题:进制转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复