带小数十进制转二进制C语言,c语言十进制小数转为二进制

#include<stdio.h>

#defineN10

#defineM100

voidfun10_2_Z(longnumber)//十进制整数部分转二进制

charch[M];

intlen=0;

if(number==0)

printf("%d",number);//如果整数部分为零直接输出

else

while(number)

ch[len++]=number%2;

number=number/2;

for(;len>0;len--)//逆向输出

printf("%d",ch[len-1]);

voidfun10_2_X(doublenumber)//十进制小数部分转二进制

inti,len=0;

intarry[N];

while(number)

inttemp=(int)(number*2);

arry[len++]=temp;

if(len==N)

break;//控制小数点后不超过十位

number=2*number-temp;

printf(".");

for(i=0;i<len;i++)

printf("%d",arry[i]);

intmain()

doublenumber;

scanf("%lf",&number);

longt=(int)number;//整数部分

doublem=number-t;//小数部分

fun10_2_Z(t);

fun10_2_X(m);

return0;

运行结果:

2358dee8db2634a2b5dcc27731757d37.png扩展资料:

十进制整数转换为二进制整数

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

例、把173D转换为二进制数。

解:

c1a20e1d9375ed184e1a476930c082bc.png

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值