//输入一个10进制数可得一个2进制数,并且可达到小数点后8位。
#include<stdio.h>
int main()
{
float x=235.5625,y=0.0;
printf("请输入你要换算的数,这个数要在你的计算机所能工作的范围内:");
scanf("%f",&x);
int a=x;//x的整数部分
float b=x-a;//x的小数部分
int c=0;//a对2取余
int d=0; //得出整数部分的2进制数值
int i =0; //做八次的计数
int e=0; //小数个位数取值
int g=0;//反序数的最低位
int m=0;//逆序结果 ,最终整数结果
int n=1;//小数的整数最终结果
int p=0;//小数的最终结果
if(a%2!=0) {
while(a>0){
c=a%2;
d=c+d*10;
a=a/2;
}
while(d>0){
g=d%10;
m=g+m*10;
d=d/10;
}
}else{
int d=1;
while(a>0){
c=a%2;
d=c+d*10;
a=a/2;
}
while(d>0){
g=d%10;
m=g+m*10;
d=d/10;
}
m=m-1;
}
int j=0;//储存b的小数部分
while(i<8){
i++;
b=b*2;
e=b;
if(b>=1){
b=b-1;
}
n=n*10+e;
}
p=n-100000000;
if(p>9999999){
printf("10进制数%lf的二进制数是%d.%d\n",x,m,p);
}else if(p>999999){
printf("10进制数%lf的二进制数是%d.0%d\n",x,m,p);
}else if(p>99999){
printf("10进制数%lf的二进制数是%d.00%d\n",x,m,p);
}else if(p>9999){
printf("10进制数%lf的二进制数是%d.000%d\n",x,m,p);
}else if(p>999){
printf("10进制数%lf的二进制数是%d.0000%d\n",x,m,p);
}else if(p>99){
printf("10进制数%lf的二进制数是%d.00000%d\n",x,m,p);
}else if(p>9){
printf("10进制数%lf的二进制数是%d.000000%d\n",x,m,p);
}else if(p>0){
printf("10进制数%lf的二进制数是%d.00000000%d\n",x,m,p);
}else if(p==0){
printf("10进制数%lf的二进制数是%d.000000000\n",x,m,p);
}
}
C语言-10进制转二进制--(输入一个10进制数可得一个2进制数,并且可达到小数点后8位。)
最新推荐文章于 2023-11-17 09:07:25 发布