将十六进制字符串转换为十六进制数 [英] Converting hex string to hex data

查看:185
本文介绍了将十六进制字符串转换为十六进制数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前有一个包含十六进制值的 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆