十进制转二进制 c语言程序

十进制转二进制 c语言程序,第1张

#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语言编程把十进制转化成二进制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9274463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存