Objective-C Десятичное в базовое 16 шестнадцатеричное преобразование - PullRequest
5 голосов
/ 15 мая 2010

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

Я хочу повернуть данные вот так

long long decimalRepresentation = 1719886131591410351;

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

//Base 16 Hex Output: 17DE435307A07300

Оператор% x не хочет работать на меня

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

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

1 Ответ

10 голосов
/ 15 мая 2010

%x печатает целое число без знака в шестнадцатеричном представлении и sizeof(long long) != sizeof(unsigned). Смотрите, например «Размер и выравнивание типов данных» в 64-разрядном руководстве по переходу.

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

NSLog(@"%llx", myLongLong); 
...