首先吐槽下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;
}