欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

带小数的十进制转二进制完整源码

程序员文章站 2022-07-15 09:41:44
...

例如:12.125转化为二进制为1100.100

 带小数的十进制转二进制完整源码

 完整源码:

#include<stdio.h>
int main()
{
	int c[64],c1[64],i = 0, nz;//nz表示整数
	double n, nx;//nx表示小数
	scanf_s("%lf", &n);//输入一个数
	nz = (int)n;
	do
	{
		c[i++] = nz % 2;
		nz /= 2;
	} while (nz != 0);
	for (i--; i >= 0; i--)
		printf("%d", c[i]);//输出整数二进制
	if ((n - (int)n) > 0)
		printf(".");
	nx = n - nz;
	i = 0;
	while((nx-(int)nx)!=0)
	{
		nx = (nx-(int)nx)*2;
		c1[i++]=(int)nx;
	}
	for (i--; i >= 0; i--)
		printf("%d", c1[i]);//输出小数部分二进制
	return 0;
}