Solved

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

Posted on 2004-10-04
6
386 Views
Last Modified: 2010-04-17
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.
0
Comment
Question by:drumrboy44
6 Comments
 
LVL 1

Expert Comment

by:Perfunction
ID: 12219902
0
 
LVL 11

Expert Comment

by:raj3060
ID: 12219995
Try this link:
http://www.gidforums.com/t-2615.html
They have very good comments and explanation.
0
 
LVL 55

Accepted Solution

by:
Jaime Olivares earned 500 total points
ID: 12220178
you can use c++ sstream library. Something like:

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

using namespace std;

// somewhere in your code
    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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 53

Expert Comment

by:Julian Hansen
ID: 12220215
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
 
LVL 2

Expert Comment

by:Ruskialt
ID: 12224390
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
 
LVL 53

Expert Comment

by:Julian Hansen
ID: 12224567
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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to split this in C++ 4 94
Fibonacci challenge 11 112
index Out OF Range Exception error 4 54
iframe detection of parent window scale 20 61
This article will show, step by step, how to integrate R code into a R Sweave document
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

25 Experts available now in Live!

Get 1:1 Help Now