我将数据字节存储在一个数组中。现在,在程序中我使用了 getBytes:range:NSmakeRange(position, length)。当我打印收到的字节时,我认为它们的位置被交换了,我的答案是 0x0292 而不是 0x9202(请查看下面的程序)。
现在,我很困惑哪一个是正确的答案。我真的有必要总是交换我收到的字节吗?请向我解释这个概念,以便我能够清楚地理解。
这是我的代码!!谢谢你。
const Byte dataBytesArray[] = {
0x92, 0x02, 0x13, 0x14 //in Hex
};
NSData *myDataArray = [[NSData alloc]initWithBytes:dataBytesArray length:4];
uint16_t ef;
[myDataArray getBytes:&ef range:NSMakeRange(0, 2)];
NSLog(@"dataByteArray is %@ ",[NSNumber numberWithUnsignedInteger:ef]);//the answer I got is 658 in decimal format which is 0x0292
uint16_t swapping = CFSwapInt16BigToHost(ef); //swapping the bytes
NSLog(@"swap is %@ ",[NSNumber numberWithUnsignedInteger:swapping]); //after swapping I got 37378 which is 0x9202