/**功能十进制转换二进制、八进制、十六进制**/ #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; }