#include <stdio.h>
#include <math.h>
void p1(int n)//10#->2#
{
int a[10],i=0;
while(n!=0)
{
a[i++]=n%2;
n=n/2;
}
for(i=i-1; i>=0; i--)
printf("%d",a[i]);
printf("\n");
}
void p2(int n)//10#->8#
{
int a[10],i=0;
while(n!=0)
{
a[i++]=n%8;
n=n/8;
}
for(i=i-1; i>=0; i--)
printf("%d",a[i]);
printf("\n");
}
void p3(int n)//10#->16#
{
int a[10],i=0;
while(n!=0)
{
a[i++]=n%16;
if(a[i-1]>=10)
a[i-1]=a[i-1]-10+65;
n=n/16;
}
for(i=i-1; i>=0; i--)
if(a[i]>=10)
printf("%c",a[i]);
else
printf("%d",a[i]);
printf("\n");
}
//
void q1()//2#->10#
{
int i,j,sum=0,n;
char a[20];
printf("请入入你要转换的数:\n");
scanf("%s",&a);
for(i=0; a[i]!='\0'; i++)
{
sum=sum*2+a[i]-'0';
}
printf("%d\n",sum);
}
void q2()//8#->10#
{
int i=0,j,sum,a[10],n;
printf("请入入你要转换的数:\n");
scanf("%d",&n);
while(n!=0)
{
a[i++]=n%10;
n=n/10;
}
sum=0;
j=i;
for(i=0; i<j; i++)
sum+=(int)pow(8,i)*a[i];
printf("%d\n",sum);
}
void q3()//16#->10#
{
int i=0,sum=0;
char b[20];
printf("请输入要转换的数:\n");
scanf("%s",&b);
for(i=0; b[i]!='\0'; i++)
{
if(b[i]>='A'&&b[i]<='F')
sum=sum*16+b[i]-55;
else
sum=sum*16+b[i]-'0';
}
printf("%d\n",sum);
}
///
int main()
{
int n,m,a;
printf("---------------计算器------------------\n");
printf("请选择:\n");
printf("1、10#->2#、10#->8#、10#->16#\n2、2#->10#、8#->10#、16#->10#\n");
scanf("%d",&n);
if(n==1)
{
printf("请选择:\n1、10#->2#\t2、10#->8#\t3、10#->16#\n");
scanf("%d",&m);
printf("请输入一个十进制数:\n");
scanf("%d",&a);
switch(m)
{
case 1:
p1(a);
break;
case 2:
p2(a);
break;
case 3:
p3(a);
break;
default:
printf("输入错误!\n");
}
}
else if(n==2)
{
printf("请选择:\n1、2#->10#\t2、8#->10#\t3、16#->10#\n");
scanf("%d",&m);
switch(m)
{
case 1:
q1();
break;
case 2:
q2();
break;
case 3:
q3();
break;
default:
printf("输入错误!\n");
}
}
else
printf("输入错误!\n");
return 0;
}
计算器
最新推荐文章于 2023-09-18 09:54:05 发布