C言語のきほん「2進数に変換する処理を表すフローチャートと同じ処理を行うプログラム」

スポンサーリンク
C言語

本ブログでは、『基本情報技術者試験のサンプル問題を解こう!(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を更新し、次のビットに備える

コメント

タイトルとURLをコピーしました