Странное шестнадцатеричное форматирование в NSString - PullRequest
0 голосов
/ 09 января 2011

Попробуйте:

unsigned long long int N; = 23229877463LL;
NSString* s = [NSString stringWithFormat:@"dec:%qi, hex:%qX",N,N];

NSLog(@"output: %@",s);

output: dec:23229877460, hex:689BCCD400000005

Что случилось с 00000005 ???В mySQL hex (23229877460) = 5689BCCD4.Кроме того, любой другой язык, кажется, делает это правильно.Шестнадцатизначный шестнадцатеричный код - это как 4 миллиарда (16 ^ 16), верно?

Как я могу заставить цель-c отформатировать шестнадцатеричные числа, понятные для других языков?

1 Ответ

3 голосов
/ 09 января 2011

После исправления ложного ; в результате:

unsigned long long int N = 23229877463LL;
NSString* s = [NSString stringWithFormat:@"dec:%qi, hex:%qX",N,N];

NSLog(@"output: %@",s);

Код работает точно так, как ожидалось:

2011-01-09 10:46:16.236 dfjkdfkjfdjkfd[25716:a0f] output: dec:23229877463, hex:5689BCCD7

Есть что-то еще не так.Вам нужно будет разместить больше кода.Строка, используемая для компиляции файла, вероятно, также будет полезна.

А для хихиканья:

unsigned long long int N = 23229877460LL;
NSString* s = [NSString stringWithFormat:@"dec:%qi, hex:%qX",N,N];
2011-01-09 10:49:10.425 dfjkdfkjfdjkfd[25755:a0f] output: dec:23229877460, hex:5689BCCD4
...