/**
*十进制长整型变量转换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;
}
网友评论
以下是我用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;
}
```