iOS NSData 和十六进制字符串之间的相互转换
来源:互联网 发布:java多线程调用单例 编辑:程序博客网 时间:2024/05/18 03:54
其中将十六进制字符串转换成NSData的代码如下:
- (NSData *)convertHexStrToData:(NSString *)str { if (!str || [str length] == 0) { return nil; } NSMutableData *hexData = [[NSMutableData alloc] initWithCapacity:8]; NSRange range; if ([str length] % 2 == 0) { range = NSMakeRange(0, 2); } else { range = NSMakeRange(0, 1); } for (NSInteger i = range.location; i < [str length]; i += 2) { unsigned int anInt; NSString *hexCharStr = [str substringWithRange:range]; NSScanner *scanner = [[NSScanner alloc] initWithString:hexCharStr]; [scanner scanHexInt:&anInt]; NSData *entity = [[NSData alloc] initWithBytes:&anInt length:1]; [hexData appendData:entity]; range.location += range.length; range.length = 2; } LEDEBUG(@"hexdata: %@", hexData); return hexData;}
将NSData转换成十六进制的字符串则可使用如下方式:
- (NSString *)convertDataToHexStr:(NSData *)data { if (!data || [data length] == 0) { return @""; } NSMutableString *string = [[NSMutableString alloc] initWithCapacity:[data length]]; [data enumerateByteRangesUsingBlock:^(const void *bytes, NSRange byteRange, BOOL *stop) { unsigned char *dataBytes = (unsigned char*)bytes; for (NSInteger i = 0; i < byteRange.length; i++) { NSString *hexStr = [NSString stringWithFormat:@"%x", (dataBytes[i]) & 0xff]; if ([hexStr length] == 2) { [string appendString:hexStr]; } else { [string appendFormat:@"0%@", hexStr]; } } }]; return string;}
0 0
- iOS NSData 和十六进制字符串之间的相互转换
- iOS NSData 和十六进制字符串之间的相互转换
- OC NSData 和十六进制字符串之间的相互转换
- iOS十六进制和字符串的相互转换
- NSDictionary和NSData之间的相互转换
- IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换
- IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换
- NSData NSString char *之间 || NSData和NSArray的相互转换
- iOS NSString 和 NSData 的相互转换
- 十六进制和字符串的相互转换
- 十六进制和字符串相互转换
- 字节数组与十六进制字符串之间的相互转换
- Android字节、十进制、十六进制、字符串之间的相互转换
- iOS字符串和16进制之间的相互转换
- iOS普通字符串和UTF-8之间的相互转换
- NSData与UIImage之间的相互转换
- 字符串和十六进制数之间的转换
- iOS开发---UIImage和NSData的相互转换
- Kotlin-对象表达式,对象声明
- 10个帮你放松减压的网站
- android6.0 动态申请权限问题总结
- Spring AOP 完成日志记录
- ArrayList、Linkedlist、Vector
- iOS NSData 和十六进制字符串之间的相互转换
- Birt设置导出格式和去掉多余按钮的方法
- 僵尸进程的产生、危害及避免方法
- UICollectionView入门--使用系统UICollectionViewFlowLayout布局
- JAVA的Random类
- Enterprise Architect生成pdf并且拼接为一张图
- IOS ATS适配SSL证书方案
- 内存泄露和内存溢出
- VC的小工具查询exe的依赖