本文实例为大家分享了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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。