我有一个包含数据的NSData数据包。我需要将范围8,1的字节转换为int。要获取该位置的数据,请执行以下操作。
NSData *byte = [packet subdataWithRange:NSMakeRange(8, 1)];
如果我是NSLog字节
<01>
我如何将此转换为int?这可能是最基本的问题,但我只是没有做对。
任何帮助将不胜感激。
更新
使用该数据,int应该等于1.我不确定这是否与Endian有任何关系。
答案 0 :(得分:4)
使用-[NSData bytes]获取原始缓冲区并从中读取
int i = *((char *)[byte bytes])
char buff;
[bytes getBytes:&buff length:1];
int i = buff;
确保您正在阅读char *
而不是int *
,否则您将访问无效的内存位置,这可能会也可能不会崩溃或提供正确的结果。