У меня есть NSData
с шестнадцатеричным значением внутри, например. <EC>
.Objective C конвертирует NSData с шестнадцатеричным значением в int
Теперь мне нужно преобразовать это значение в переменную int
, чтобы получить int x = -20
.
Идеи?
У меня есть NSData
с шестнадцатеричным значением внутри, например. <EC>
.Objective C конвертирует NSData с шестнадцатеричным значением в int
Теперь мне нужно преобразовать это значение в переменную int
, чтобы получить int x = -20
.
Идеи?
Вы можете использовать getBytes
извлечь эти байты из NSData
:
uint8_t byte;
[data getBytes:&byte length:1];
Если вам действительно нужно, что в int
, а затем захватить его с этой uint8_t
переменного:
int x = byte;
В стороне, если вам действительно нужно это значение 0xec
, которое интерпретируется как -20
, а не 236
, вы можете использовать int8_t
вместо uint8_t
, и знак этого байтового значения будет сохранен. Часто, однако, имея дело с двоичными данными, мы имеем дело с неподписанными байтами, а не с целыми числами, но это просто зависит от того, что представляет собой этот двоичный файл NSData
.
Я просто печатал то же самое. – rmaddy
Как значение получилось закодировано в объект NSData? –
См. Http://stackoverflow.com/questions/10696391/convert-nsdata-to-byte-array, чтобы узнать, как получить значения байтов из 'NSData'. Оттуда вам не будет проблем с обработкой любого байта, который вам нужен. – rmaddy
Что вы делали до сих пор? –