我想构建一个包含 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);
}
但是当我记录它时,它告诉我:
data is <0c000000 d0070000 02000000>
我把这些转换成十进制,这些数字是201326592、3490119680、33554432。所以我不知道为什么是这些数字,我该怎么办?谢谢。
最佳答案
您使用的是小端架构,这意味着 LSB(最低有效字节)排在第一位。序列0c 00 00 00代表数字00 00 00 0c,即12。
关于objective-c - 将 NSInteger 转换为字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345037/