刚刚开始学习编程,常遇到进制转换类的题目,在这里做一下总结
直接贴代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char valu[]="0123456789ABCDEFGHIJKLMN"; //要求小写改为小写即可,最高转换24进制,最低二进制
char ans[35]; //储存答案的数组
int tentoany(int val,int n)
{
int i=1;
memset(ans,'0',sizeof(ans)); //初始化
if(val==0) //判断0的情况
return 1;
while(val)
{
ans[i]=valu[val%n];
val/=n;
i++;
}
return i-1; //返回长度
}
int main()
{
int val,n;
while(cin>>val>>n) //输入10进制数和要转换的进制数
{
int len=tentoany(val,n);
for(int i=len;i>0;i--) //反向输出
cout<<ans[i];
cout<<endl;
}
return 0;
}
下面附上其他链接