【问题标题】:iOS:convert hex data to integer formatiOS:将十六进制数据转换为整数格式
【发布时间】:2015-03-17 09:27:57
【问题描述】:

我正在做corebluetooth 应用程序并且能够以十六进制格式接收来自外围设备的数据我需要将数据解析为整数格式并且有什么方法可以将数据从十六进制格式转换为整数格式请帮助下面我得到的价值

NSstring *data

011f6d000000160000000000040507010500054607db051705173a0600053d
      Nslog(@"data is  Ð`@PpPT`}°QpQs")

如果有任何方法可以将数据转换为字符串,也请提供帮助。

【问题讨论】:

  • 该十六进制字符串中有多少个整数?它们的尺寸是多少? 8位16? 32?它们是大端还是小端?
  • 以上数据包含我使用字节数组到外围设备的 25 个整数值,作为响应,我得到了这些值
  • 那里有 31 个字节,那么如何获得 25 个“整数”?再一次,“整数”不是很有帮助——它们是字节、int16、int32?混合物
  • 您确实需要复制/粘贴代码,以免出现拼写错误。还有你如何打印十六进制字符串。将NSString 变量命名为data 也会引起混淆。
  • 我假设您收到数据并且十六进制只是因为您显示它的方式。此外,如果有 31 个字节和 25 个整数,那么一些“整数”必须是 8 位的,而其他的则更大,请提供您期望从文档中获得的格式。

标签: ios objective-c int hex nsdata


【解决方案1】:

定义一个具有所有正确类型和顺序的结构。将结构指向数据。然后只需通过结构元素访问项目。请注意类型,最好使用定义明确的类型,例如 int8_t、uint8_t、uint16_t、int16_t 等,以确保正确的元素大小。您将需要一个“打包”结构,与 CPU 对齐大小对齐。

【讨论】:

    猜你喜欢
    • 2010-10-16
    • 2014-04-16
    • 2016-12-04
    • 1970-01-01
    • 2015-04-18
    • 2012-03-08
    相关资源
    最近更新 更多