Objective-C parse hex string to integer
Joshua Weinberg's answer is mostly correct, however the 0x
prefix is optional when scanning hexadecimal integers. If you have a string in the format #01FFFFAB
, you can still use NSScanner
, but you can skip the first character.
unsigned result = 0;NSScanner *scanner = [NSScanner scannerWithString:@"#01FFFFAB"];[scanner setScanLocation:1]; // bypass '#' character[scanner scanHexInt:&result];
strtol() is your friend.
It converts a string to a long, and you can pass the base of the number in. Strip that # sign off first though, or pass to strtol a pointer to the first numerical character.