我具有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/

10-11 16:24