3个回答
展开全部
要是用计算机编程可以直接调用装换函数,要是要写算法就用二进制转换法,八进制只要取二进制的3位,16进制取二进制的4位.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int i,j=1;
void ten_two(),ten_eight(),ten_sixteen(),
two_ten(),eight_ten(),sixteen_ten(),p();
do
{
printf("please choose:\n1. 10-->2\n2. 10-->8\n3. 10-->16\n4. 2-->10\n5. 8-->10\n6. 16-->10\n");
scanf("%d",&i);
switch(i)
{
case 1: ten_two();break;
case 2: ten_eight();break;
case 3: ten_sixteen();break;
case 4: two_ten();break;
case 5: eight_ten();break;
case 6: sixteen_ten();break;
default: printf("error\n");j=0;
}
} while(j==0);
}
void ten_two()
{
int a,j=0,two[16];
p();
scanf("%d",&a);
while(a!=0)
{j++;two[j]=a%2;a=a/2;}
for(;j!=0;j--)
printf("%d",two[j]);
putchar('\n');
}
void ten_eight()
{
int a;
p();
scanf("%d",&a);
printf("%o\n",a);
}
void ten_sixteen()
{
int a;
p();
scanf("%d",&a);
printf("%x\n",a);
}
void two_ten()
{
int two[16],j=1,i=1,b=1,k;
long a;
p();
scanf("%d",&a);
for(;a!=0;j++)
{
two[j]=a%10;a=a/10;
}
for(k=1;k<j;k++)
{
a=a+two[k]*b;
b=b*2;
}
printf("%d\n",a);
}
void eight_ten()
{
int a;
p();
scanf("%o",&a);
printf("%d\n",a);
}
void sixteen_ten()
{
int a;
p();
scanf("%x",&a);
printf("%d\n",a);
}
void p()
{printf("please input anumber:\n");}
void main()
{
int i,j=1;
void ten_two(),ten_eight(),ten_sixteen(),
two_ten(),eight_ten(),sixteen_ten(),p();
do
{
printf("please choose:\n1. 10-->2\n2. 10-->8\n3. 10-->16\n4. 2-->10\n5. 8-->10\n6. 16-->10\n");
scanf("%d",&i);
switch(i)
{
case 1: ten_two();break;
case 2: ten_eight();break;
case 3: ten_sixteen();break;
case 4: two_ten();break;
case 5: eight_ten();break;
case 6: sixteen_ten();break;
default: printf("error\n");j=0;
}
} while(j==0);
}
void ten_two()
{
int a,j=0,two[16];
p();
scanf("%d",&a);
while(a!=0)
{j++;two[j]=a%2;a=a/2;}
for(;j!=0;j--)
printf("%d",two[j]);
putchar('\n');
}
void ten_eight()
{
int a;
p();
scanf("%d",&a);
printf("%o\n",a);
}
void ten_sixteen()
{
int a;
p();
scanf("%d",&a);
printf("%x\n",a);
}
void two_ten()
{
int two[16],j=1,i=1,b=1,k;
long a;
p();
scanf("%d",&a);
for(;a!=0;j++)
{
two[j]=a%10;a=a/10;
}
for(k=1;k<j;k++)
{
a=a+two[k]*b;
b=b*2;
}
printf("%d\n",a);
}
void eight_ten()
{
int a;
p();
scanf("%o",&a);
printf("%d\n",a);
}
void sixteen_ten()
{
int a;
p();
scanf("%x",&a);
printf("%d\n",a);
}
void p()
{printf("please input anumber:\n");}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询