十进制转化成二进制二进制倒序后在转化成十进制

输入一个十进制数,将输入的十进制数转化成二进制输出。同时将转化后的二进制如110倒序成011后输出,再将倒序后的二进制转化成十进制输出

#include<stdio.h>
#include<math.h>
#include<string.h>
/*int input(int m)
{
printf(">>%s输入一个二进制数:\n",m?"请":"输入有误,请重新");
scanf("%s",a);
return strlen(a);
}*/
#define N 32
int input(int);
char q[N];
int f=0;
char c[32];
void main()
{
int a=0,i,k,n=0,m=0;
double decimal=0;
char b[32];
for(i=0;i<32;i++)
{
b[i]=0;
}
printf("请输入一个十进制数:\n");
scanf("%d",&i);
while(i!=0) //while循环用来将输入的十进制转化成二进制
{
k=i%2;
b[a++]=k;
f++;
i=i/2;
}
printf("转为二进制数为:\n");
while(a>0) //while循环用来输出二进制数
{
printf("%d",b[--a]);
}
printf("\n");
printf("倒序后二进制数为:\n");
for( int d=0;d<f;d++) //for循环用来将二进制倒序后输出
{
c[d]=b[d]; //将二进制数组存到另一个数组中,用来将倒序后的二进制转化成十进制
printf("%d",b[d]);
n++; //记录有二进制位的数组的长度;
decimal=decimal*2+b[d]-'0';
}

printf("\n");
printf("请输入倒序后的二进制数:\n");
int num=0;
char q[32];
scanf("%s",q);
for(i=0;q[i]!=NULL;i++)
{
if(q[i]!='0' && q[i]!='1')
{
printf("输入错误\n");
}
else
{
num=num*2+q[i]-'0';
}
}
printf("倒序后的二进制转换成的十进制数是:");
printf("%d\n",num);
printf("\n");

}


你可能喜欢

  • 十进制转换
  • 进制转换方法
  • 十进制转二进制
  • 十进制十六进制转换
  • 进制换算
  • 复习课件
  • 使用技巧
  • 计算机二进制

十进制转化成二进制二进制倒序后在转化成十进制相关文档

最新文档

返回顶部