ntc*_*cio 2 bits objective-c nsdata ios
如何将存储在a中的一系列32位(表示4个字节)NSString转换为NSDataobjective-c中的4个字节的对象?
例如,如何转换以下字符串:
NSString *bitSeries = @"00000000000000000000000111101100";
Run Code Online (Sandbox Code Playgroud)
进入NSData长度恰好为4的物体?
您可以使用strtoul()base 2将字符串转换为无符号整数:
NSString *bitSeries = @"00000000000000000000000111101100";
uint32_t value = strtoul([bitSeries UTF8String], NULL, 2);
Run Code Online (Sandbox Code Playgroud)
然后创建一个NSData对象:
NSData *data = [NSData dataWithBytes:&value length:sizeof(value)];
NSLog(@"%@", data);
// Output: <ec010000>
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢big-endian字节顺序:
value = OSSwapHostToBigInt32(value);
NSData *data = [NSData dataWithBytes:&value length:sizeof(value)];
NSLog(@"%@", data);
// Output: <000001ec>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |