如何将存储在 NSString
中的一系列 32 位(代表 4 个字节)转换为 objective-c 中的 4 个字节的 NSData
对象?
例如,我如何转换以下字符串:
NSString *bitSeries = @"00000000000000000000000111101100";
进入长度恰好为 4 的 NSData
对象?
最佳答案
您可以使用以 2 为底的 strtoul()
将字符串转换为无符号整数:
NSString *bitSeries = @"00000000000000000000000111101100";
uint32_t value = strtoul([bitSeries UTF8String], NULL, 2);
然后创建一个NSData
对象:
NSData *data = [NSData dataWithBytes:&value length:sizeof(value)];
NSLog(@"%@", data);
// Output: <ec010000>
或者,如果您更喜欢大端字节顺序:
value = OSSwapHostToBigInt32(value);
NSData *data = [NSData dataWithBytes:&value length:sizeof(value)];
NSLog(@"%@", data);
// Output: <000001ec>
关于ios - 将一系列位转换为 NSData 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213264/