課題12. for文を使って、10進数を2進数に変換する基数変換のプログラムを作成しなさい。
ただし、2047を超えた10進数でも対応できるようにしなさい。
ヒント:変数binを1で初期化し、入力した10進数の値を超えるまで2を掛け、課題11の1024の代わりに使う。
途中まではかけたんですが、1024と打っても1か0の片方しか出力されません。
forとwhileを使ったやり方を教えてください
#define _CRT_SECURE_NO_WARNINGS // 余計な警告が出ないようにする
#include <stdio.h>
int main( void )
{
int dec; // 変換する10進数
int no; // 現在の桁の数
int bin; // 2進数の現在の桁の値
printf( "2進数に変換する値を入力してください >" ); scanf( "%d", &dec );
//// 以下に10進数を2進数に変換するプログラムを作成する
bin = 1;
no = 0;
while (1) {
if (bin < dec) {
bin = bin * 2;
}
if (dec <= bin) {
break;
}
}
no = dec / bin;//
dec = dec % bin;
printf("%d", no);
return 0;
}