将1个字节转换为int Objective-C

时间:2013-11-11 09:26:32

标签: objective-c c byte

我有一个包含数据的NSData数据包。我需要将范围8,1的字节转换为int。要获取该位置的数据,请执行以下操作。

NSData *byte = [packet subdataWithRange:NSMakeRange(8, 1)];

如果我是NSLog字节

<01>

我如何将此转换为int?这可能是最基本的问题,但我只是没有做对。

任何帮助将不胜感激。

更新

使用该数据,int应该等于1.我不确定这是否与Endian有任何关系。

1 个答案:

答案 0 :(得分:4)

使用-[NSData bytes]获取原始缓冲区并从中读取

int i = *((char *)[byte bytes])

或使用-[NSData getBytes:length:]

char buff;
[bytes getBytes:&buff length:1];
int i = buff;

确保您正在阅读char *而不是int *,否则您将访问无效的内存位置,这可能会也可能不会崩溃或提供正确的结果。