Преобразование десятичных чисел в шестнадцатеричные в C++: методы и примеры

Чтобы преобразовать десятичное число в шестнадцатеричное в C++, можно использовать несколько методов. Вот несколько примеров:

Метод 1: использование стандартной библиотеки

#include <iostream>
#include <sstream>
#include <iomanip>
std::string decimalToHex(int decimal) {
    std::stringstream ss;
    ss << std::hex << decimal;
    return ss.str();
}
int main() {
    int decimal = 255;
    std::string hexadecimal = decimalToHex(decimal);
    std::cout << "Hexadecimal: " << hexadecimal << std::endl;
    return 0;
}

Метод 2: использование битовых манипуляций

#include <iostream>
#include <string>
std::string decimalToHex(int decimal) {
    std::string hex;
    while (decimal > 0) {
        int remainder = decimal % 16;
        if (remainder < 10)
            hex.insert(0, 1, '0' + remainder);
        else
            hex.insert(0, 1, 'A' + remainder - 10);
        decimal /= 16;
    }
    return hex;
}
int main() {
    int decimal = 255;
    std::string hexadecimal = decimalToHex(decimal);
    std::cout << "Hexadecimal: " << hexadecimal << std::endl;
    return 0;
}

Метод 3: использование рекурсии

#include <iostream>
#include <string>
std::string decimalToHex(int decimal) {
    if (decimal == 0)
        return "";
    int remainder = decimal % 16;
    char hexChar = (remainder < 10) ? ('0' + remainder) : ('A' + remainder - 10);
    return decimalToHex(decimal / 16) + hexChar;
}
int main() {
    int decimal = 255;
    std::string hexadecimal = decimalToHex(decimal);
    std::cout << "Hexadecimal: " << hexadecimal << std::endl;
    return 0;
}