2010-05-15 3 views
5

Есть ли у кого-нибудь фрагмент кода или класс, который займет много времени и превратит его в 16-байтовую шестнадцатеричную строку?Objective-C Decimal to Base 16 Hex conversion

Я ищу, чтобы включить данные, как этот

long long decimalRepresentation = 1719886131591410351; 

и превратить его в этом

//Base 16 Hex Output: 17DE435307A07300 

оператору% х не хочет работать для меня

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

Как вы можете видеть, это даже не близко. Любая помощь действительно оценена!

ответ

10

%x печатает целое число без знака в шестнадцатеричном представлении и sizeof(long long) != sizeof(unsigned). См. "Data Type Size and Alignment" в 64-битной направляющей.

Используйте ll спецификатора (то будет два строчных L), чтобы получить желаемый результат:

NSLog(@"%llx", myLongLong); 
+0

Спасибо, что быстро! Я еще не пробовал это на iPhone, вы знаете, работает ли он на процессоре iPhone? – Justin

+0

Формат 'printf()' хорошо указан, поэтому я не ожидал сюрпризов. –

+0

nevmind my bad sorry – Justin