# easiest way to get Decimal to Hex in c++?

if anyone could write a quick code segment or explain the easiest way to convert decimal integers to hex in c++ that'd be great. thanks.
###### Who is Participating?

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
0
Commented:
http://www.gidforums.com/t-2615.html
They have very good comments and explanation.
0
Software ArchitectCommented:
you can use c++ sstream library. Something like:

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int testnumber = 100;
stringstream ss;   // this object will do the conversion

ss << hex << testnumber;   // 'hex' will format number to hex format
cout << ss.str();  // display result  str() method return the hex string, you can assign it to a 'string' object
0

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Commented:
I am assuming you want to do this for display purposes - for any other purpose there is not really a conversion because 0xFF = 255 = 11111111.

Output to the console

printf ( "%x", decimalnumber) ;

save to a string

sprintf ( str, "%x", decimalnumber ) ;
0
Commented:
If your decimal number (and integer) is in a string first convert the number to an int, then format the variable to another string

char pInteger[] = "256"; //my integer string
char pHex[256]; //destination string
int nValue;

if( sscanf( pInteger , "%d" , &nValue ) == 1 ) //returns number of converted elements
{
sprintf( pHex , "0x%08x" , nValue );
}

=> pHex now holds "0x00000100"

CString has a Format() function that doest excactly what sprintf() does, in case you use MFC. Also if your source string is in a CString, you can use it as the first parameter in the sscanf() statement, because CString's can be seen as const char*'s

leave the "0x", and the "08" if you dont want the prefix and the 0-padding and the 8 characters wide field
0
Commented:
Just a minor point - if you are going to convert from a string you could also use atoi or atol

char dec[] = "1234" ;
char hex[10] ;
int x ;

x = atoi ( str ) ;
sprintf ( hex, "0x%08x", x ) ; // adopting Ruskialt's formatting options here

0
###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming

From novice to tech pro — start learning today.