| #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();
 }
 |