我正在尝试使用 NSSwap 交换 32 位无符号整数的字节
我原来的 NSInteger 是13a81fbe,我希望它变成:be1fa813
跑完之后
NSInteger swappedInteger = NSSwapInt(unencodedInteger);
我得到一个新的整数,其字节值为:be1fa813。但是当我将它打印到控制台时,我得到 -1105221613
我的完整代码是这样的:
//get bytes within range
NSInteger unencodedInteger;
[mydata getBytes:&unencodedInteger range:myRange];
//swap the endianess of the bytes
NSInteger swappedInteger = NSSwapInt(unencodedInteger);
//debug logging
NSLog(@"Original: %x (%d) Swapped: %x (%d)",unencodedInteger, unencodedInteger,swappedInteger, swappedInteger);
//add swapped integer to array
[banks addObject:[NSNumber numberWithInteger:swappedInteger]];
有谁明白为什么新的交换价值表现得好像它已经签署了?