Шестнадцатеричный в NSNumber - PullRequest
3 голосов
/ 30 ноября 2011

У меня проблемы с преобразованием шестнадцатеричного числа в NSNumber. Я перепробовал кучу вещей, но, похоже, не могу понять.

Что-то вроде следующего, как я могу получить NSNumber?

Byte test[4] = {0x00, 0x00, 0x1D, 0x7A}; // Expected result is 7546
NSData * testData = [NSData dataWithBytes:&test length:4];
// NSNumber = ...

1 Ответ

4 голосов
/ 30 ноября 2011

NSScanner имеет следующие методы

- (BOOL)scanHexFloat:(float *)result
- (BOOL)scanHexDouble:(double *)result
- (BOOL)scanHexLongLong:(unsigned long long *)result
- (BOOL)scanHexInt:(unsigned *)intValue

, поэтому вы можете сканировать шестнадцатеричное представление NSString.Обсуждение последнего:

Шестнадцатеричному целочисленному представлению может предшествовать 0x или 0X.Пропускает лишние цифры в случае переполнения, поэтому позиция получателя находится за всем шестнадцатеричным представлением.Вызовите этот метод с NULL в качестве intValue, чтобы просто выполнить сканирование за шестнадцатеричным целочисленным представлением.

...