Objective-C十六進制字符串轉爲十進制

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章