Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Objective-C Decimal to Base 16 Hex conversion

Does anyone have a code snippet or a class that will take a long long and turn it into a 16 byte Hex string?

I'm looking to turn data like this

long long decimalRepresentation = 1719886131591410351;

and turn it into this

//Base 16 Hex Output: 17DE435307A07300

The %x operator doesn't want to work for me

NSLog(@"Hex: %x",decimalRepresentation);
//console : "Hex: 7a072af"

As you can see that's not even close. Any help is truly appreciated!

like image 862
Daddy Avatar asked May 15 '10 16:05

Daddy


1 Answers

%x prints an unsigned integer in hexadecimal representation and sizeof(long long) != sizeof(unsigned). See e.g. "Data Type Size and Alignment" in the 64bit transitioning guide.

Use the ll specifier (thats two lower-case L) to get the desired output:

NSLog(@"%llx", myLongLong); 
like image 115
Georg Fritzsche Avatar answered Oct 27 '22 22:10

Georg Fritzsche