C语言程序 十进制转换二进制、八进制、十六进制
/**功能十进制转换二进制、八进制、十六进制**/
#include
#include
void B(int a)
{
int j,k;
int p[30];
for(j=0;a!=0;j++)
{
p[j]=a%8;
a=a/8;
}
printf("\n转换后的数为:");
for(k=j-1;k>=0;k--)
{
printf("%d",p[k]);
}
printf("\n");
}
void E(int a)
{
int j,k;
int p[30];
for(j=0;a!=0;j++)
{
p[j]=a%2;
a=a/2;
}
printf("\n转换后的数为:");
for(k=j-1;k>=0;k--)
{
printf("%d",p[k]);
}
printf("\n");
}
void SL(int a)
{
int j,k;
int p[30];
for(j=0;a!=0;j++)
{
p[j]=a%16;
a=a/16;
if(p[j]<10)
{
p[j]+=48;
}
else
{
switch(p[j])
{
case 10:
p[j]='A';
break;
case 11:
p[j]='B';
break;
case 12:
p[j]='C';
break;
case 13:
p[j]='D';
break;
case 14:
p[j]='E';
break;
case 15:
p[j]='F';
break;
}
}
}
printf("\n转换后的数为:");
for(k=j-1;k>=0;k--)
{
printf("%c",p[k]);
}
printf("\n");
}
void move(int m , int n)
{
switch(n)
{
case 2:
printf("\n您选择十进制转化为二进制\n");
E(m);
break;
case 8:
printf("\n您选择十进制转化为八进制\n");
B(m);
break;
case 16:
printf("\n您选择十进制转化为十六进制\n");
SL(m);
break;
}
}
int main()
{
int m,n;
printf("------十进制转换工具------\n");
printf("请输入一个十进制的正数m=");
scanf("%d",&m);
if(m<=0)
{
printf("提示输入错误\n");
}
else
printf("请输入需要转换的进制n=");
scanf("%d",&n);
if(n!=2&&n!=8&&n!=16)
{
printf("提示:没有这个进制数\n");
}
else
{
move(m,n);
}
return 0;
}