C语言实现任意进制转换器
短信预约 -IT技能 免费直播动态提醒
本文实例为大家分享了C语言实现任意进制转换器的具体代码,供大家参考,具体内容如下
简单的C语言任意进制转换器
该进制转换器可进行任意进制转换,请看效果图:
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int NToD(char *num,int n);
void DToM(int d,int m,char *mnum);
void main()
{
int N,M;
char Nnum[20],Mnum[20];
while(1)
{
printf("请输入需要转换的几进制:");
scanf("%d",&N);
printf("请输入需要转换的几进制数:");
scanf("%s",Nnum);
printf("请输入需要被转换成为几进制");
scanf("%d",&M);
int d=NToD(Nnum,N);
DToM(d,M,Mnum);
printf("%d进制数%s转换为%d进制数为:%s\n",N,Nnum,M,Mnum);
printf("\n");
}
}
int NToD(char *num,int n)
{
int i,weight=1,d=0;
int len=strlen(num);
for(int i=len-1;i>=0;i--)
{
if(num[i]>='a'&&num[i]<='z')
d+=(num[i]-'a'+10)*weight;
else if(num[i]>='A'&&num[i]<='Z')
d+=(num[i]-'A'+10)*weight;
else
d+=(num[i]-'0')*weight;
weight*=n;
}
return d;
}
void DToM(int d,int m,char *mnum)
{
int len=0,r;
do
{
r=d%m;
if(r>=10)
mnum[len++]=r-10+'A';
else
mnum[len++]=r+'0';
d/=m;
}while(d!=0);
mnum[len]='\0';
char t;
for(int i=0,j=len-1;i<j;i++,j--)
{
t=mnum[i];
mnum[i]=mnum[j];
mnum[j]=t;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341