我想知道如何在Objective-C中解析代表数字的十六进制字符串。我愿意同时使用目标方法或基于C的方法。例:#01FFFFAB应该解析为整数:33554347任何帮助,将不胜感激!
3 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
Joshua Weinberg的答案基本上是正确的,但是0x在扫描十六进制整数时,前缀是可选的。如果您使用格式的字符串#01FFFFAB,您仍然可以使用 NSScanner,但是您可以跳过第一个字符。
unsigned result = 0;
NSScanner *scanner = [NSScanner scannerWithString:@"#01FFFFAB"];
[scanner setScanLocation:1]; // bypass '#' character
[scanner scanHexInt:&result];
慕哥6287543
TA贡献1831条经验 获得超10个赞
您可以为此使用NSScanner
unsigned int outVal;
NSScanner* scanner = [NSScanner scannerWithString:@"0x01FFFFAB"];
[scanner scanHexInt:&outVal];
outVal将包含您要查找的int。0x是可选的。
慕妹3146593
TA贡献1820条经验 获得超9个赞
您可以使用以下行进行转换。它只有一行代码:
NSString *hexString = @"01FFFFAB";
length = (UInt64)strtoull([hexString UTF8String], NULL, 16);
NSLog(@"The required Length is %d", length);
快乐编码!
- 3 回答
- 0 关注
- 556 浏览
添加回答
举报
0/150
提交
取消