本ブログでは、『基本情報技術者試験のサンプル問題を解こう!(2)(科目A)「基数変換」』をご紹介した。
なお、基数変換については、本ブログでご紹介している。
今回は、この問題に対応する「2進数に変換する処理を表すフローチャートと同じ処理を行う」C言語のプログラムをご紹介しよう。

正解:エ
//2進数に変換する処理を表すフローチャートと同じ処理を行うプログラム
#include <stdio.h>
int main() {
int j;
int NISHIN[8];
printf("10進数の整数 j(1~99)を入力してください:");
scanf("%d", &j);
// 安全のため制約チェック
if (j <= 0 || j >= 100) {
printf("入力は1~99の間で指定してください。\n");
return 1;
}
// 2進数変換処理(下位ビットから格納)
for (int k = 0; k < 8; k++) {
NISHIN[k] = j % 2; // j mod 2
j = j / 2; // j div 2
}
// 出力(下位ビットから上位ビットへ逆順に出力)
printf("2進数(8桁): ");
for (int k = 7; k >= 0; k--) {
printf("%d", NISHIN[k]);
}
printf("\n");
return 0;
}
実行結果
10進数の整数 j(1~99)を入力してください:10
2進数(8桁): 00001010
NISHIN[k] = j % 2;
→ 下位ビットを配列に保存
j = j / 2;
→ jを更新し、次のビットに備える
コメント