Objective C 将具有十六进制值的 NSData 转换为 int

Objective C converting NSData with hex value to int

我有一个 NSData,里面有一个十六进制值,例如<EC>.

现在我需要将此值转换为 int 变量以获得 int x = -20.

想法?

您可以使用 getBytesNSData:

中提取该字节
uint8_t byte;
[data getBytes:&byte length:1];

如果你真的需要 int 中的那个,那么从那个 uint8_t 变量中获取它:

int x = byte;

顺便说一句,如果您确实需要将此 0xec 值解释为 -20 而不是 236,您可以使用 int8_t 而不是 uint8_t , 并且该字节值的符号将被保留。但是,在处理二进制数据时,我们经常处理无符号字节,而不是有符号整数,但这仅取决于此二进制 NSData 代表什么。