学习制作《进制转换程序》
包括2,8,10,16进制的转换
这里所使用的方法为数学方法,不使用计算机进制转换功能。
#include<stdio.h>
//待更新,16转10的方法非算术方法,希望未来可以改进。
main()
{
//待更新,本程序代码使用算术方法,重在逻辑。
while(1)//循环体
{
int a,b,c=1,d,i=0,m=0,n,sum=0;//a选择进制类型,b输入数据,c,d,i,m,n,sum,h[20],j[16]为其他数据
int h[20];
char j[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//部分公用定义,部分专用定义
//提示部分
printf("欢迎使用进制互转程序\n");//与十六进制的互转有待更新
printf("10-2,按1,2-10按2,10-8按3,8-10按4,2-8按5,8-2按6\n");
printf("16-2按7,16-10按8,16-8按9,2-16按10,8-16按11,10-16按12\n");//
scanf("%d",&a);/**/
//程序主体由此开始*********************************************
if(a==1)//first 111111111111111111111111111111111111111111111111111111111111
{
printf("欢迎使用10—2进制转换程序\n");
printf("请输入一个十进制数:\n");
scanf("%d",&b);
while(b>0)
{
h[i]=b%2;
i++;
b=b/2;
}
printf("转化后的二进制的数是:\n");
for(i--;i>=0;i--)
printf("%d",h[i]);
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==2)//22222222222222222222222222222222222222222222222222222222
{
printf("欢迎使用2-10进制转换程序\n");
printf("请输入一个二进制数(每一位数请勿超过1,否则无效)\n");
scanf("%d",&b);
while(b>0)
{
sum=sum+b%10*c;
b=b/10;
c=2*c;
}
printf("转化后的十进制的数是:\n");
printf("%d\n",sum);
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==3)//33333333333333333333333333333333333333333333333333333333
{
printf("欢迎使用10-8进制程序\n");
printf("请输入一个十进制数\n");
scanf("%d",&b);
while(b>0)
{
h[i]=b%8;
i++;
b=b/8;
}
printf("转化后的八进制数是:\n");
for(i--;i>=0;i--)
printf("%d",h[i]);
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==4)//44444444444444444444444444444444444444444444444444444444
{
printf("欢迎使用8-10进制程序\n");
printf("请输入一个八进制数(每一位数不得超过7,否则无效)\n");
scanf("%d",&b);
while(b>0)
{
sum=sum+b%10*c;
b=b/10;
c=8*c;
}
printf("%d\n",sum);
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==5)//555555555555555555555555555555555555555555555555555555555555555555
{
printf("欢迎使用2—8进制转换程序\n");
printf("请输入一个二进制数(每一位请勿超过1,否则无效):\n");
scanf("%d",&b);
while(b>0)
{
sum=sum+b%10*c;
b=b/10;
c=2*c;
}
while(sum>0)
{
h[i]=sum%8;
i++;
sum=sum/8;
}
printf("转化后的八进制数是:\n");
for(i--;i>=0;i--)
printf("%d",h[i]);
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==6)//66666666666666666666666666666666666666666666666666666666666666666666666666
{
printf("欢迎使用8-2进制转换程序\n");
printf("请输入一个八进制数(每一位请勿超过7,否则无效):\n");
scanf("%d",&b);
while(b>0)
{
sum=sum+b%10*c;
b=b/10;
c=8*c;
}
while(sum>0)
{
h[i]=sum%2;
i++;
sum=sum/2;
}
printf("转化后的二进制的数是:\n");
for(i--;i>=0;i--)
printf("%d",h[i]);
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==7)//777777777777777777777777777777777777777777777777777777777777777777777
{
printf("欢迎使用16-2进制程序\n");
printf("请输入一个十六进制数:\n");
scanf("%x",&b);
printf("转化后的十进制的数是:\n");
printf("%d\n",b);
while(b>0)
{
h[i]=b%2;
i++;
b=b/2;
}
printf("转化后的二进制的数是:\n");
for(i--;i>=0;i--)
printf("%d",h[i]);
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==8)//8888888888888888888888888888888888888888888888888888888888888888
{
printf("欢迎使用16-10进制转换程序\n");
printf("请输入一个十六进制数:\n");
scanf("%x",&b);
printf("转化后的十进制的数是:\n");
printf("%d\n",b);
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==9)//9999999999999999999999999999999999999999999999999999999999999
{
printf("欢迎使用16-8进制程序\n");
printf("请输入一个十六进制数(每一位数不得超过7,否则无效)\n");
scanf("%x",&b);
printf("转化后的十进制的数是:\n");
printf("%d\n",b);
while(b>0)
{
h[i]=b%8;
i++;
b=b/8;
}
printf("转化后的八进制数是:\n");
for(i--;i>=0;i--)
printf("%d",h[i]);
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==10)//10 10 10 10 10 10 10 10 10 10 10 10 10
{
printf("欢迎使用2-16进制程序\n");
printf("请输入一个二进制数(每一位数不得超过1,否则无效)\n");
scanf("%d",&b);
while(b>0)
{
sum=sum+b%10*c;
b=b/10;
c=2*c;
}
while(sum>0)
{
d=sum%16;
h[i]=d;
i++;
sum=sum/16;
}
printf("转化为十六进制的数为:0x");
for(i--;i>=0;i--)
{
m=h[i];
printf("%c",j[m]);
}
printf("(0x为十六进制数符号)");
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==11)//11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
{
printf("欢迎使用8-16进制程序\n");
printf("请输入一个八进制数(每一位数不得超过7,否则无效)\n");
scanf("%d",&b);
while(b>0)
{
sum=sum+b%10*c;
b=b/10;
c=8*c;
}
printf("(0x为十六进制数符号)");
printf("转化为十六进制的数为:0x");
printf("%x\n",sum);
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
else if(a==12)//12 12 12 12 12 12 12 12 1212
{
printf("欢迎使用10-16进制转换程序\n");
printf("请输入一个十进制整数:");
scanf("%d",&b);
while(b>0)
{
d=b%16;
h[i]=d;
i++;
b=b/16;
}
printf("转化为十六进制的数为:0x");
for(i--;i>=0;i--)
{
m=h[i];
printf("%c",j[m]);
}
printf("(0x为十六进制数符号)");
printf("\n");
printf("...................................................................................................\n");
printf("...................................................................................................\n");
}
}//循环括号
}//主程序括号
//本程序起始于2020年10月11日晚,v2.00版本发布于2020年10月12日晚22:30;
//敬请期待更新!!!
制作不易,新人犹难,多多支持。
由于本系统未上传,所以没有连接,见谅。