Daddy
Daddy

Reputation: 9035

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!

Upvotes: 5

Views: 6603

Answers (1)

Georg Fritzsche
Georg Fritzsche

Reputation: 98964

%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); 

Upvotes: 10

Related Questions