#include<stdioh>
#include<stdlibh>
int
getlen(int
n)
{
if(n==0||n==1)
return
1;
else
return
getlen(n/2)+1;
}
void
main()
{
int
n,t;
int
a
[100];
int
i;
printf("请输入一个十进制数:\n");
scanf("%d",&n);
t=getlen(n)-1;
for(i=0;i<=t;i++){
a[i]=n%2;
n=n/2;}
printf("对应的二进制数:\n");
for(i--;i>=0;i--)
printf("%ld",a[i]);
system("pause");
}
//修改如上
首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2…重复步骤直到商为0;读数时从最后一个余数读起,即kn,k(n-1)…k2,k1;所得数便是转化成的二进制数(除二取余法)
c语言中没有二进制的格式输出符号
你可以用itoa函数很方便的将一个10进制int转变成二进制字符串
如:
int
i;
char
s[128];
scanf("%d",&i);
itoa(i,
s,
2);
/3个参数,第一个是待转换的数,第二个是存放转换后的字符串,第三个即需要转换的进制/
printf("该数转换为二进制是:
[%s]\n",s);
补充一点,itoa函数的头文件是stdlibh
你代码错误太多,while (i!=1)
应改为while (i!=0)而且余数应该倒序输出,你全给顺序输出了,而却有些繁琐的东西可以去掉。
#include <stdioh>
void main()
{
int i,j,n=0,a[40];
scanf("%d",&i);
while (i!=0)
{n++;
j=i%2;
a[n]=j;
i=i/2;
}
for(i=n;i>=1;i--)
printf("%d ",a[i]);
}
以上就是关于十进制转二进制 c语言程序全部的内容,包括:十进制转二进制 c语言程序、c语言编程,将十进制整数转化为二进制、怎么用C语言编程把十进制转化成二进制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)