2
如何將存儲在NSString
中的一系列32位(代表4個字節)轉換爲objective-c中的4個字節的NSData
對象?將一系列位轉換爲NSData對象
例如,我怎麼能轉換成以下字符串:
NSString *bitSeries = @"00000000000000000000000111101100";
與長度正好4 NSData
對象?
如何將存儲在NSString
中的一系列32位(代表4個字節)轉換爲objective-c中的4個字節的NSData
對象?將一系列位轉換爲NSData對象
例如,我怎麼能轉換成以下字符串:
NSString *bitSeries = @"00000000000000000000000111101100";
與長度正好4 NSData
對象?
您可以使用strtoul()
與基地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>
或者,如果你喜歡big-endian字節訂購:
value = OSSwapHostToBigInt32(value);
NSData *data = [NSData dataWithBytes:&value length:sizeof(value)];
NSLog(@"%@", data);
// Output: <000001ec>