2015-01-02 3 views
0

BLE 디바이스의 16 비트 2의 보수 특성을 가지고 있습니다. 그것은 0-1, 2-3, 4-5 ....에서 16-17까지 바이트 수에 9 개의 정수를 포함합니다.NSData의 바이트를 정수로 디코 케이션합니다.

데이터 유형은 NSData이며, 다음과 같습니다

<faff0100 1b00ab00 daff9141 5603c0fd 06f2> 

가 어떻게 정수를 추출 할 수 있습니까?

+0

텍스트를 인코딩하는 데 사용되는 UTF-16과는 관계가 없습니다. 귀하가 사용하려는 언어를 지정하고 싶습니다. – Codo

+0

안녕하세요, 아마 지식의 부족은 UTF-16을 다시합니다. Objective_C를 사용하고 있습니다. – duck1970

답변

1

데이터는 기본적으로 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 
+0

'길이'방법에 대해서도 언급 할 가치가 있습니다. (NSData 객체가 나타내는 바이트 수) => https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/#//apple_ref/occ/instp/NSData/length –

+0

안녕하세요, 위대하지만 .... 처음 숫자에 빛나는 작품. 그러나 바이트 12-13의 값에 어떻게 액세스합니까? – duck1970

+0

죄송합니다. 9 개의 요소로 구성된 배열입니다. 내 대답을 업데이트했습니다. – Codo