Десятичное в шестнадцатеричное преобразование c ++ встроенная функция

Есть ли встроенная функция в C ++, которая будет принимать десятичный ввод от пользователя и преобразовывать его в шестнадцатеричный и наоборот? Я попробовал это, используя функцию, которую я написал, но мне было интересно, есть ли встроенная функция, чтобы немного минимизировать код. Заранее спасибо.

7

Решение

Десятичное число в гекс: —

std::stringstream ss;
ss<< std::hex << decimal_value; // int decimal_value
std::string res ( ss.str() );

std::cout << res;

От шестнадцатеричного до десятичного: —

std::stringstream ss;
ss  << hex_value ; // std::string hex_value
ss >> std::hex >> decimal_value ; //int decimal_value

std::cout << decimal_value ;

Ref: std::hex, std::stringstream

21

Другие решения

Многие компиляторы поддерживают itoa функция (которая появляется в стандарте POSIX, но не в стандартах C или C ++). Visual C ++ называет это _itoa,

#include <stdlib.h>

char hexString[20];
itoa(value, hexString, 16);

Обратите внимание, что не существует такой вещи, как десятичное значение или шестнадцатеричное значение. Числовые значения всегда хранятся в двоичном виде. Только строковое представление числа имеет конкретное основание (основание).

Конечно, используя %x спецификатор формата с любым из printf функции хороши, когда значение должно быть показано в более длинном сообщении.

7

использование пространства имен std;

int DecToHex(int p_intValue)
{
char *l_pCharRes = new (char);
sprintf(l_pCharRes, "%X", p_intValue);
int l_intResult = stoi(l_pCharRes);
cout << l_intResult<< "\n";
return l_intResult;
}

int main()
{
int x = 35;
DecToHex(x);
return 0;
}
0