16进制转10进制
int a = strtoul([@"16进制的字符串" UTF8String], 0, 16);
下面这种方法防止内存溢出
unsigned long a = 0;
NSScanner *scanner = [NSScanner scannerWithString:@"16进制字符串"];
[scanner scanHexLongLong:&a];
10进制转16进制
NSString *hexString = [NSString stringWithFormat:@"%@",[[NSString alloc] initWithFormat:@"%1lx",a]];