c语言编程:输入一个只包含0和1的二进制数,打印出相应的十进制、八进制和十六进制形式。

来源:百度知道 编辑:UC知道 时间:2024/05/16 07:34:36
帮忙编写一个C语言程序。谢谢了!

//只算个二进制到十进制的,其它类似.已经测试,没问题。
如果有错误,肯定是复制的问题,照样打入就可以了。
#include<stdio.h>
#include<math.h>
void two_ten(int num[],int sub)
{
int i;
double sum=0;
for(i=0;i<sub;i++)
{
sum=sum+num[i]*pow(2,i);
}
printf("转换为十进制后为:%.0lf\n",sum);
}

void main()
{
int arr[200];
int sub=0;
do
{
printf("请输入二进制数的第%d位,输入2结束:\n",sub+1);
scanf("%d",&arr[sub]);
if(arr[sub]!=0&&arr[sub]!=1&&arr[sub]!=2)
{
printf("输入错误,请输入0或1,2结束\n");
sub--;
}
if(arr[sub]==2)
{
break;
}
sub++;

}while(1);
two_ten(arr,sub);
}

在计算机组成原理中又转换的算法,挺简单的。