我有一個來自BLE器件的16位二進制補碼特性。它的字節數爲0-1,2-3,4-5 ....到16-17包含9個整數。將NSData中的字節解碼爲整數
數據類型是NSData
,看起來像這樣:
<faff0100 1b00ab00 daff9141 5603c0fd 06f2>
我如何提取整數?
我有一個來自BLE器件的16位二進制補碼特性。它的字節數爲0-1,2-3,4-5 ....到16-17包含9個整數。將NSData中的字節解碼爲整數
數據類型是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
這與UTF-16無關,用於對文本進行編碼。您寧可指定您打算使用的語言。 – Codo
嗨,可能我的知識缺乏UTF-16。 我正在使用Objective_C – duck1970