本文实例为大家分享了C语言实现任意进制转换器的具体代码,供大家参考,具体内容如下 简单的C语言任意进制转换器 该进制转换器可进行任意进制转换,请看效果图: 代码 #include
本文实例为大家分享了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;
}
}
--结束END--
本文标题: C语言实现任意进制转换器
本文链接: https://www.lsjlt.com/news/162936.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0