基数 16 の値が定数であるか、変数に格納されている場合は、単純なキャストが機能します。
long long llint1 = (long long int)0x5d0cfa30041d4348;
long long llint2 = (long long int)0x024025978b5e50d2;
long long llint3 = (long long int)0xfb115bd6d34a8e9f;
NSLog(@"\n%lld\n%lld\n%lld", llint1, llint2, llint3);
値が文字列の場合は、最初にスキャンする必要があります。
unsigned long long tmp;
NSScanner *nscanner = [NSScanner scannerWithString:@"0x5d0cfa30041d4348"];
[nscanner scanHexLongLong:&tmp];
llint1 = (long long int)tmp;
nscanner = [NSScanner scannerWithString:@"0x024025978b5e50d2"];
[nscanner scanHexLongLong:&tmp];
llint2 = (long long int)tmp;
nscanner = [NSScanner scannerWithString:@"0xfb115bd6d34a8e9f"];
[nscanner scanHexLongLong:&tmp];
llint3 = (long long int)tmp;
NSLog(@"\n%lld\n%lld\n%lld", llint1, llint2, llint3);
注:scanHexLongLong
およびその他のスキャン メソッドは、スキャンが成功したかどうかを示す BOOL を返します。文字列を操作する場合は、スキャンが成功したことを確認することをお勧めします。