Чтобы преобразовать десятичное число в шестнадцатеричное в 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;
}