C语言-10进制转二进制--(输入一个10进制数可得一个2进制数,并且可达到小数点后8位。)

//输入一个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);
	}
	
 } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值