十进制整数转十六进制字符串

发布时间 2023-12-27 21:35:50作者: 奔付山河

描述

编写一个函数,传入一个十进制的正整数,将十进制整数转换为十六进制的字符串并返回。(十六进制字符串中的字母全部大写)

输入描述:

键盘输入一个十进制的正整数

输出描述:

输出该十进制整数转换后的十六进制字符串

示例1
输入:162
输出:A2
示例2
输入:50
输出:32
示例3
输入:501
输出:1F5
#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
using namespace std;

string toHexString(int n);

int main() {

    int n;
    cin >> n;

    string hexStr = toHexString(n);
    cout << hexStr << endl;

    return 0;
}

string toHexString(int n) {
    // write your code here......
    string h[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"};
    string rh = "";
    if (n <= 16) {
        return h[n];
    }
    while(n > 16)
    {
        int last = n%16;
        rh += h[last];
        n = floor(n / 16);

    }
    rh += h[n];
    reverse(rh.begin(), rh.end());
    return rh;
    
}