/****************************************/ /* 10進数→2進数変換(小数・筆算) */ /****************************************/ #include #include void main( ) { char c[128],c1[128]; double dn; int m,i,j; printf("\n***10進数の小数を2進数に変換します***"); printf("\n10進数: 0."); fflush(stdout); gets(c1); // 文字列を入力 sprintf(c,"0.%s",c1); // 小数の文字列に dn=atof(c); // 実数値に変換 printf("\n 0.5 ) %f\n",dn); for( i=0; dn>0.0; i++ ) // dn>0 のとき繰り返す { printf(" -----------\n"); m=(int)(dn/0.5); // 0.5で割った整数部 dn=dn/0.5-(double)m; // 0.5で割った小数部 printf(" 0.5 ) %f + %d\n",dn,m); c[i]=m+'0'; // 文字1桁格納 if ( i>32 ) break; // 割り切れないと見なす } printf("\n答 0."); for( j=0; j