带小数的十进制转二进制完整源码
程序员文章站
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;
}
上一篇: 二进制的原码,反码和补码
下一篇: 位移&二进制转换&原码&反码&补码