objective-c - 将 NSInteger 转换为字节

标签 objective-c ios nsinteger

我想构建一个包含 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/

相关文章:

ios - 自定义 UIBarButtonItem 返回按钮

iphone - 如何重命名 NSMutableDictionary 中的键?

ios - 如何检测在中国下载的应用程序?

cocoa 轻质绳

ios - 创建默认为 NSInteger 的枚举值

iphone - 添加 NSInteger 对象到 NSMutableArray

ios - 如何检查是否为 64 位构建了静态库?

ios - 启动应用程序时检测 iPad 方向

c# - 使用 .net 或 C# 为 iOS 发送通知

ios - 返回数组的函数没有在 for 循环 Swift 中获取附加内容