C/C++库函数(strtol()/itoa())进制转换

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。

 

实例:

输入进制大小和该进制下的数,输出转换成功后对应的十进制数:

#include<cstdio>
#include<cstdlib>
#include<cstring>
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为要转变的进制数。

实例:

输入一个十进制的数和将要转变的进制,输出转换成功后对应的进制数:

程序代码:

#include<cstdio>
#include<cstdlib>
#include<cstring>
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;
}

运行结果:

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值