sba*_*row 3 c byte objective-c
我有一个包含数据的 NSData 数据包。我需要将范围 8, 1 的字节转换为 int。要获取该位置的数据,我执行以下操作。
NSData *byte = [packet subdataWithRange:NSMakeRange(8, 1)];
Run Code Online (Sandbox Code Playgroud)
如果我 NSLog 字节
<01>
Run Code Online (Sandbox Code Playgroud)
我认为如何将其转换为 int?这可能是最基本的问题,但我只是没有做对。
任何帮助,将不胜感激。
更新
有了这些数据,int 应该等于 1。我不确定这是否与 Endian 有任何关系。
使用-[NSData bytes]获取原始缓冲区并从中读取
int i = *((char *)[byte bytes])
Run Code Online (Sandbox Code Playgroud)
char buff;
[bytes getBytes:&buff length:1];
int i = buff;
Run Code Online (Sandbox Code Playgroud)
确保您正在读取char *not int *,否则您正在访问无效的内存位置,这可能会或可能不会崩溃或提供正确的结果。
| 归档时间: |
|
| 查看次数: |
3591 次 |
| 最近记录: |