#include "stdio.h"
#include "math.h"
void z10_2() /*10进制转2进制*/
{
int i,ii;
int a[10];
int k=0;
printf("请输入10进制数\n");
scanf("%d",&i);
while(i!=0)
{
a[k++]=i%2;
i/=2;
}
printf("转换的二进制数为:");
ii=k-1;
while(ii!=-1)
{
printf("%d",a[ii--]);
}
printf("\n按任意键返回....\n");
}
void z2_10() /*2进制转10进制*/
{
int i=0,sum=0,n=0,ii=0;
int k=0,a[10];
printf("请输入你的2进制数是几位\n");
scanf("%d",&i);
printf("请输入2进制数:\n");
for(k=0;k<i;k++)
{ scanf("%d",&a[k]); }
k=i-1;
while(k!=-1)
{
sum+=(a[k--])*(pow(2,n));
n++;
}
printf("转换的十进制数为:%d\n",sum);
printf("\n按任意键返回....\n");
}
void z10_8() /*10进制转8进制*/
{
int i,ii;
int a[10];
int k=0;
printf("请输入10进制数\n");
scanf("%d",&i);
while(i!=0)
{
a[k++]=i%8;
i/=8;
}
printf("转换的八进制数为:");
ii=k-1;
while(ii!=-1)
{
printf("%d",a[ii--]);
}
printf("\n按任意键返回....\n");
}
void z8_10()/*8进制转10进制*/
{
int i=0,sum=0,n=0,ii=0;
int k=0,a[10];
printf("请输入你的8进制数是几位\n");
scanf("%d",&i);
printf("请输入8进制数:\n");
for(k=0;k<i;k++)
{ scanf("%d",&a[k]); }
k=i-1;
while(k!=-1)
{
sum+=(a[k--])*(pow(8,n));
n++;
}
printf("转换的十进制数为:%d\n",sum);
printf("\n按任意键返回....\n");
}
void xuanzhe() //选择
{
char y='y';
int i;
loop:
printf("\n");
printf(" 进制转换系统\n");
printf("\n");
printf(" 1----10进制转2进制\n");
printf(" 2----2进制转10进制\n");
printf(" 3----10进制转8进制\n");
printf(" 4----8进制转10进制\n");
printf(" 0----退出\n");
printf("请输入你的选择(0-4)\n");
while(y=='y')
{
scanf("%d",&i);
switch (i)
{
case 1:
z10_2(); /*10进制转2进制*/
getch();
system("cls");
goto loop;
break;
case 2:
z2_10(); /*2进制转10进制*/
getch();
system("cls");
goto loop;
break;
case 3:
z10_8(); /*10进制转8进制*/
getch();
system("cls");
goto loop;
break;
case 4:
z8_10(); /*8进制转10进制*/
getch();
system("cls");
goto loop;
break;
case 0:
y='a';
printf("欢迎使用\n");
break;
default:
printf("你的输入有误!!");
break;
}
}
}
void main()
{
xuanzhe();
} |