首先吐槽下Objective-C的语法真的很让人抓狂!
最近在捣鼓IOS应用,其中核心部分需要做进制转换。因为是核心代码,比较追求性能,所以想着能不能像其它语言一样,找到原生的进制转换函数直接使用。于是谷歌都快被我玩烂了,就是找不到。如有知道Objective-C原生进制转换函数的朋友,还请不吝赐教!
然后找不到就找不到吧,偷个懒找别人写的看看?可是找来找去,质量真的是参差不齐。最后无奈只好自己写一个了。
以下贴出来给大家参考,也给自己备忘。
int hex2dec(NSString *hex){
int dec=0;
int len = [hex length];
int i;
for(i=len-1;i>=0;i--) {
unichar c = [hex characterAtIndex:i];
if(c >= '0' && c <='9'){
dec += (c-48)<<(4*(len-i-1));
}else if(c >= 'A' && c <='F'){
dec += (c-55)<<(4*(len-i-1));
}else if(c >= 'a' && c <='f'){
dec += (c-87)<<(4*(len-i-1));
}
}
return dec;
}