- @implementation NSString (StringToHexData)
- //
- // Decodes an NSString containing hex encoded bytes into an NSData object
- //
- - (NSData *) stringToHexData
- {
- int len = [self length] / 2; // Target length
- unsigned char *buf = malloc(len)
- unsigned char *whole_byte = buf;
- char byte_chars[3] = {'\0','\0','\0'};
- int i;
- for (i=0; i < [self length] / 2; i++) {
- byte_chars[0] = [self characterAtIndex:i*2];
- byte_chars[1] = [self characterAtIndex:i*2+1];
- *whole_byte = strtol(byte_chars, NULL, 16);
- whole_byte++;
- }
- NSData *data = [NSData dataWithBytes:buf length:len];
- free( buf );
- return data;
- }
- @end
- @implementation NSData (DataToHexString)
- - (NSString *) dataToHexString
- {
- NSUInteger len = [self length];
- char * chars = (char *)[self bytes];
- NSMutableString * hexString = [[NSMutableString alloc] init];
- for(NSUInteger i = 0; i < len; i++ )
- [hexString appendString:[NSString stringWithFormat:@"%0.2hhx", chars[i]]];
- return hexString;
- }
- @end
iOS Objective c 16进制字符串转为二进制数组
最新推荐文章于 2021-01-07 20:44:08 发布