Objective-C将十六进制字符串解析为整数

我想知道如何在Objective-C中解析代表数字的十六进制字符串。我愿意同时使用目标方法或基于C的方法。


例:


#01FFFFAB

应该解析为整数:33554347


任何帮助,将不胜感激!


茅侃侃
浏览 557回答 3
3回答

牧羊人nacy

Joshua Weinberg的答案基本上是正确的,但是0x在扫描十六进制整数时,前缀是可选的。如果您使用格式的字符串#01FFFFAB,您仍然可以使用 NSScanner,但是您可以跳过第一个字符。unsigned result = 0;NSScanner *scanner = [NSScanner scannerWithString:@"#01FFFFAB"];[scanner setScanLocation:1]; // bypass '#' character[scanner scanHexInt:&result];

慕哥6287543

您可以为此使用NSScannerunsigned int outVal;NSScanner* scanner = [NSScanner scannerWithString:@"0x01FFFFAB"];[scanner scanHexInt:&outVal];outVal将包含您要查找的int。0x是可选的。

慕妹3146593

您可以使用以下行进行转换。它只有一行代码:NSString *hexString = @"01FFFFAB";length = (UInt64)strtoull([hexString UTF8String], NULL, 16);NSLog(@"The required Length is %d", length);快乐编码!
打开App,查看更多内容
随时随地看视频慕课网APP