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

    科技2024-06-03  77

    //输入一个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); } }
    Processed: 0.008, SQL: 8