Преобразование Decimal в hex встроенная функция c++

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

3 ответов


десятичное в шестнадцатиричное :-

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

std::cout << res;

Hex в десятичное :-

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


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

#include <stdlib.h>

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

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

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


включить

использование пространства имен 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;
}