Подтвердить что ты не робот

Преобразование шестнадцатеричной строки в длинную

Существуют ли какие-либо классы Cocoa, которые помогут мне преобразовать шестнадцатеричное значение в NSString, например 0x12FA, в long или NSNumber? Он не похож ни на один из классов, как NSNumberFormatter поддерживает шестнадцатеричные числа.

Спасибо, Хуа-Ин

4b9b3361

Ответ 1

Вот краткий пример того, как вы это сделаете, используя NSScanner:

NSString* pString = @"0xDEADBABE";
NSScanner* pScanner = [NSScanner scannerWithString: pString];

unsigned int iValue;
[pScanner scanHexInt: &iValue];

Ответ 3

здесь есть другой способ преобразования, длинный длинный int в шестнадцатеричную строку.
сначала шестнадцатеричный длинный.

NSString* pString = @"ffffb382ddfe";
NSScanner* pScanner = [NSScanner scannerWithString: pString];

unsigned long long iValue2;
[pScanner scanHexLongLong: &iValue2];

NSLog(@"iValue2 = %lld", iValue2);

и наоборот, longlong to hex string...

NSNumber *number;
NSString *hexString;

number = [NSNumber numberWithLongLong:iValue2];
hexString = [NSString stringWithFormat:@"%qx", [number longLongValue]];

NSLog(@"hexString = %@", hexString);