objective-c - 将 NSData 中的字节解码为整数

标签 objective-c macos cocoa nsdata

我有来自 BLE 设备的 16 位二进制补码特性。它包含 9 个整数,字节数为:0-1、2-3、4-5 .... 到 16-17。

数据类型为NSData,如下所示:

<faff0100 1b00ab00 daff9141 5603c0fd 06f2>

如何提取整数?

最佳答案

您的数据基本上是一个 9 元素整数数组。

如果您使用 Objective C,则可以通过 bytes 方法进行访问。我想先检查长度是否正确:

int16_t numberArray[9];
NSData* data = ...; // your NSData instance
memcpy(numberArray, [data bytes], 18);

NSLog(@"First number: %d", numberArray[0]);  // bytes 0-1
NSLog(@"Second number: %d", numberArray[1]); // bytes 2-3
NSLog(@"Third number: %d", numberArray[2]); // bytes 4-5
...
NSLog(@"Ninth number: %d", numberArray[8]); // bytes 16-17

关于objective-c - 将 NSData 中的字节解码为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27745107/

相关文章:

ios - 使用密码或 TouchID 锁定特定应用程序

objective-c - 在 objective-c (Mac OSX) 中打开应用程序获取 url 事件

linux - 如何检查包含变量的字符串是否存在于 bash 的特定文件中?

java - 适用于 OS X Lion 的 Netbeans 中的 JDK 7

cocoa - 后台带有 NSTimer 的 OS X 代理应用程序在深度 sleep 后无法工作

iphone - URL 连接 : What is the difference between the following?

objective-c - 如何让我的应用程序保持在全屏应用程序之上

arrays - 通过绑定(bind)使用 NSPredicate 过滤自定义对象数组

objective-c - 第二个窗口创建 Objective-C Cocoa

macos - NSOpenPanel 选择文件并填充 NSTableView