Decimaal naar hex conversie c++ ingebouwde functie

Is er een ingebouwde functie in c++ die een decimale invoer van een gebruiker zou nemen en deze zou converteren naar hex en vice versa?? Ik heb het geprobeerd met een functie die ik heb geschreven, maar ik vroeg me af of er een ingebouwde is om de code een beetje te minimaliseren. Bij voorbaat dank.


Antwoord 1, autoriteit 100%

Decimaal naar hex :-

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

Hex naar decimaal:-

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


Antwoord 2, autoriteit 24%

Veel compilers ondersteunen de functie itoa(die wel voorkomt in de POSIX-standaard maar niet in de C- of C++-standaarden). Visual C++ noemt het _itoa.

#include <stdlib.h>
char hexString[20];
itoa(value, hexString, 16);

Merk op dat er niet zoiets bestaat als een decimale waarde of hexadecimale waarde. Numerieke waarden worden altijd binair opgeslagen. Alleen de tekenreeksrepresentatie van het getal heeft een bepaalde radix (grondtal).

Natuurlijk is het goed om de %x-indelingsspecificatie te gebruiken met een van de printf-functies als de waarde in een langer bericht moet worden weergegeven.


Antwoord 3

#include <iostream>
using namespace 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;
}

Other episodes