将NSInteger转换为字节

DJe*_*ean 2 objective-c nsinteger ios

我想构造一个内容为3 NSInteger类型的NSData对象,并使用以下代码:

- (void)test
{

    NSInteger i = 12, j = 2000, k = 2;

    NSMutableData *md = [NSMutableData dataWithCapacity:10];

    [md appendBytes:&i length:sizeof(i)];
    [md appendBytes:&j length:sizeof(j)];
    [md appendBytes:&k length:sizeof(k)];

    NSLog(@"data is %@",md);
}
Run Code Online (Sandbox Code Playgroud)

但是当我记录它时,它告诉我:

data is <0c000000 d0070000 02000000>
Run Code Online (Sandbox Code Playgroud)

我将这些翻译成十进制,这些数字是201326592,3490119680,33554432.所以我不知道为什么这些数字,我该怎么办?谢谢.

Mar*_*tos 7

您使用的是小端架构,这意味着LSB(最低有效字节)首先出现.序列0c 00 00 00表示数字00 00 00 0c,其为12.