我是靠谱客的博主 野性招牌,最近开发中收集的这篇文章主要介绍华为笔试题:进制转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例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;
}

 

最后

以上就是野性招牌为你收集整理的华为笔试题:进制转换的全部内容,希望文章能够帮你解决华为笔试题:进制转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部