如何将存储在NSString
, 中的一系列 32 位(代表 4 个字节)转换为NSData
Objective-c 中的 4 个字节的对象?
例如,如何转换以下字符串:
NSString *bitSeries = @"00000000000000000000000111101100";
进入NSData
长度正好为 4 的对象?
如何将存储在NSString
, 中的一系列 32 位(代表 4 个字节)转换为NSData
Objective-c 中的 4 个字节的对象?
例如,如何转换以下字符串:
NSString *bitSeries = @"00000000000000000000000111101100";
进入NSData
长度正好为 4 的对象?
您可以使用strtoul()
base 2 将字符串转换为无符号整数:
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>