2009-08-13 3 views
0

어떻게 변환 지능

나는 아래의 코드 숯불 바을 사용, 난 (바이트는 NSString) 바이트 문자열로 정수를 변환 할 [4]
barr [0] = (부호없는 int) (num & 0xff);
barr [1] = (부호없는 int) ((num >> 8) & 0xff);
barr [2] = (부호없는 정수) ((num >> 16) & 0xff);
barr [3] = (부호없는 정수) (num >> 24);

NSString * str = [NSString stringwithformat : @ "% x", barr];

하지만 "BFFFF648"이긴하지만 이진 데이터에서 NSlog가 읽을 수없는 바이너리 데이터를 인쇄하려고합니다.

+1

당신이하고 싶은 것이 분명하지 않습니다. 예제를 제공해 줄 수 있습니까? –

답변

2

실제로 바이트 문자열을 원할 경우 : NSString은 바이트를 나타내는 올바른 데이터 구조가 아닙니다. 이것은 텍스트를 나타내는 것을 의미하며 인코딩과 다양한 변형 사이에서 변환의 대상이됩니다. 바이트 문자열을 나타내려면 NSData를 사용하십시오. 예를 들어, [NSData dataWithBytes:&myInteger length:sizeof(myInteger)]과 같은 것입니다.

+0

위와 같이 NSData를 사용하면 충분하지 않을 수 있습니다. 이 코드 라인은 엔디안으로 인해 서로 다른 하드웨어 아키텍처에 다른 영향을 줄 수 있습니다. –

+0

멀티 바이트 데이터 유형의 원시 바이트 처리는 본질적으로 하드웨어 및 해당 엔디안과 관련되어 있습니다. – Chuck

관련 문제