美文网首页为ios技术而生
十进制和36进制之间的转换

十进制和36进制之间的转换

作者: 走在字里行间 | 来源:发表于2016-05-12 15:19 被阅读512次

    /**

    *十进制长整型变量转换36进制字符串

    *

    *@paramdecimal 10进制长整型

    *

    *@return36进制字符串

    */

    + (NSString*)decimal2ThirtySix:(unsignedlonglong)decimal

    {

    NSMutableString* dd = [NSMutableStringstring];

    NSString* parma =@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    unsignedlonglongi = decimal;

    while(i>0){

    intc = i%36;

    i = i/36;

    charcc = [parmacharacterAtIndex:c];

    [ddinsertString:[NSStringstringWithFormat:@"%c",cc]atIndex:0];

    }

    returndd;

    }

    /**

    *  36进制字符串转换10进制长整型变量

    *

    *@paramthirtySixStr 36进制字符串

    *

    *@return10进制长整型变量

    */

    + (unsignedlonglong)thirtySix2Decimal:(NSString*)thirtySixStr{

    NSString*str36 = [thirtySixStrcopy];

    unsignedlonglongcou=0;

    unsignedlonglength = [str36length];

    for(unsignedlongj = length ; j>0;j--) {

    charc = [str36characterAtIndex:j-1];

    if(c>='0'&&c<='9'){

    cou = cou+(c-'0')*pow(36,(length-j));

    }elseif(c>='a'&&c<='z'){

    cou = cou+(c-'a'+10)*pow(36,(length-j));

    }

    }

    returncou;

    }

    相关文章

      网友评论

      • jueyingxx:36进制转10进制有问题
        jueyingxx:@jueyingxx
        以下是我用C语言自己写,可能不是最优的,有最优的可以回复我,大家一起共勉。
        ```
        unsigned long long convert36HexStrToDecimalWith36HexStr(const char *str) {

        const char *str36 = str;
        const char *param = "0123456789abcdefghijklmnopqrstuvwxyz";
        unsigned long long num = 0;
        for (unsigned long long i = 0; i < strlen(str36); i++) {
        for (unsigned long long j = 0; j < strlen(param); j++) {
        char iChar = str36[i];
        char jChar = param[j];
        if (jChar == iChar) {
        unsigned long long n = j * pow(36, strlen(str36)-i-1);
        num += n;
        break;
        }
        }
        }
        return num;
        }
        ```

      本文标题:十进制和36进制之间的转换

      本文链接:https://www.haomeiwen.com/subject/qdlprttx.html