将十六进制字符串转换为十六进制数 [英] Converting hex string to hex data
本文介绍了将十六进制字符串转换为十六进制数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前有一个包含十六进制值的 NSString
。我需要将此 NSString
对象转换为 NSData
对象,而不更改其内容。
I currently have an NSString
containing hex values. I need to convert this NSString
object into an NSData
object, without changing its contents at all.
推荐答案
我使用此代码解析NSData对象的调试输出(如果你只是NSLog一个NSData对象,你在控制台中得到的)回到NSData:
I use this code to "parse" the debug output of an NSData object (what you get in the console if you just NSLog an NSData object) back into NSData:
-(NSData*) bytesFromHexString:(NSString *)aString;
{
NSString *theString = [[aString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] componentsJoinedByString:nil];
NSMutableData* data = [NSMutableData data];
int idx;
for (idx = 0; idx+2 <= theString.length; idx+=2) {
NSRange range = NSMakeRange(idx, 2);
NSString* hexStr = [theString substringWithRange:range];
NSScanner* scanner = [NSScanner scannerWithString:hexStr];
unsigned int intValue;
if ([scanner scanHexInt:&intValue])
[data appendBytes:&intValue length:1];
}
return data;
}
这不是我最强大的代码,但它完成了解析[nsdata_object]的工作描述]。
It's not my most robust code, but it does the job of parsing [nsdata_object description].
这篇关于将十六进制字符串转换为十六进制数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文