1.strtol()函数:
作用:
它的功能是将一个任意1-36进制数转化为10进制数,返回是long int型。
long int strtol(const char *str, char **endptr, int base);
把参数 str 所指向的字符串根据给定的 base 转换为一个长整数(类型为 long int 型),base 必须介于 2 和 36(包含)之间,或者是特殊值 0。
函数描述:
long ret = strtol(n,&result,a);
n -- 要转换为长整数的字符串。
result -- 对类型为 char* 的对象的引用,其值由函数设置为 str 中数值后的下一个字符。
a -- 基数,必须介于 2 和 36(包含)之间,或者是特殊值 0。
实例:
输入进制大小和该进制下的数,输出转换成功后对应的十进制数:
const int maxn = 10010;
int main(){
int a;
char n[maxn];
char *result;
scanf("%d%s",&a,n);
long ret = strtol(n,&result,a);
printf("%ld",ret);
return 0;
}
2.itoa()函数:
作用:
它的功能是将一个10进制的数转化为n进制的值、其返回值为char型。(和上面的strtol效果相反)
char* itoa(int val,char* dst,int radix = 10);//定义的时候默认指定10进制
函数描述:
itoa(a,result,b);
a为要转换的数,result用来存储转换结果,b为要转变的进制数。
实例:
输入一个十进制的数和将要转变的进制,输出转换成功后对应的进制数:
程序代码:
const int maxn = 10010;
int main(){
int a,b;
char result[maxn];
scanf("%d%d",&a,&b);
itoa(a,result,b);
printf("%s",result);
return 0;
}
运行结果: