【问题标题】:Convert 1 byte to int Objective-C将 1 字节转换为 int Objective-C
【发布时间】:2013-11-23 01:08:17
【问题描述】:

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

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

如果 I NSLog 字节

<01>

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

任何帮助将不胜感激。

更新

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

【问题讨论】:

标签: objective-c c byte


【解决方案1】:

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

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

或使用-[NSData getBytes:length:]

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

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

【讨论】:

  • 是的,已经尝试过了。还是不行,更新问题。
  • “不工作”??您的预期结果和实际结果是什么?
  • 预期结果为 1 实际结果为 31211265
猜你喜欢
  • 2011-02-10
  • 2011-02-12
  • 2011-01-24
  • 2020-03-01
  • 2013-09-01
  • 2016-03-04
  • 2016-02-20
相关资源
最近更新 更多