十进制小数转二进制转换器(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;
}
运行结果:
扩展资料:
十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
例、把173D转换为二进制数。
解:
十进制小数怎样转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。以0.875为例,具体做法是:
一、取整运算
1、用2乘十进制小数,可以得到积:2*0.875=1.75;
2、将积的整数部分1取出,再用2乘余下的小数部分0.75,又得到一个积,则2*0.75=1.5‘
3、再将积的整数部分取出,如此进行,则0.5*2=1.0;此时,积中的小数部分为零,此时0或1为二进制的最后一位,不再往下计算。
二、按序排列
把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。即0.875=(0.111)B
扩展资料:
运算原理
十进制小数转换为二进制小数,假设一十进制小数B化为了二进制小数0.ab的形式,同样按权展开,得:B=a(2^-1)+b(2^-2)
因为小数部分的位权是负次幂,所以我们只能乘2,得2B=a+b(2^-1)因为a变成了整数部分,我们取整数正好是取到了a,剩下的小数部分也如此。
值得一提的是,小数部分的按权展开的数位顺数正好和整数部分相反,所以不必反向取余数了。

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10




