Ric*_*III 93 string iphone parsing hex objective-c
我想知道如何在Objective-C中解析表示数字的十六进制字符串.我愿意同时使用目标或基于C的方法,也没关系.
例:
#01FFFFAB
Run Code Online (Sandbox Code Playgroud)
应解析为整数:33554347
任何帮助,将不胜感激!
dre*_*lax 168
Joshua Weinberg的答案大多是正确的,但是0x
在扫描十六进制整数时前缀是可选的.如果您有格式的字符串#01FFFFAB
,您仍然可以使用 NSScanner
,但您可以跳过第一个字符.
unsigned result = 0;
NSScanner *scanner = [NSScanner scannerWithString:@"#01FFFFAB"];
[scanner setScanLocation:1]; // bypass '#' character
[scanner scanHexInt:&result];
Run Code Online (Sandbox Code Playgroud)
Jos*_*erg 63
您可以使用NSScanner此
unsigned int outVal;
NSScanner* scanner = [NSScanner scannerWithString:@"0x01FFFFAB"];
[scanner scanHexInt:&outVal];
Run Code Online (Sandbox Code Playgroud)
outVal
将包含您正在寻找的int.0x是可选的.
Gra*_*rks 12
strtol()是你的朋友.
它将一个字符串转换为一个long,你可以传入该数字的基数.尽管首先签署#sign,但是传递给strtol一个指向第一个数字字符的指针.
您可以使用以下行进行转换。它只有一行代码:
NSString *hexString = @"01FFFFAB";
length = (UInt64)strtoull([hexString UTF8String], NULL, 16);
NSLog(@"The required Length is %d", length);
Run Code Online (Sandbox Code Playgroud)
快乐编码!