次の流れ図は、10進整数j(0<j<100)を8桁の2進数に変換する処理を表している。2進数は下位桁から順に、配列の要素NISHIN(1)からNISHIN(8)に格納される。流れ図のa及びbに入れる処理はどれか。ここで、j div 2はjを2で割った商の整数部分を、j mod 2はjを2で割った余りを表す。

2進変換は「余りを記録してから商で更新」の順序が命

頻出基本情報技術者試験2019年度 秋期 午前1/アルゴリズムとプログラミング / アルゴリズム

流れ図。開始→jを入力→ループ端「変換 k:1,1,8」(ループ開始、kは1から1刻みで8まで)→処理a(枠)→処理b(枠)→ループ端「変換」(ループ終了)→終了。選択肢ア〜エは、この処理a・処理bに入れる式の組合せ。
流れ図。開始→jを入力→ループ端「変換 k:1,1,8」(ループ開始、kは1から1刻みで8まで)→処理a(枠)→処理b(枠)→ループ端「変換」(ループ終了)→終了。選択肢ア〜エは、この処理a・処理bに入れる式の組合せ。

選択肢

正解と解説

正解: a:NISHIN(k) ← j mod 2 b:j ← j div 2

2進数への変換は「2で割った余りを下位桁から順に記録し、商で元の値を置き換える」ことを8回繰り返す手順である。したがってループ内では、先に j を2で割った余り(0か1)を NISHIN(k) へ格納し、その後で j を2で割った商に更新しなければならない。順序を逆にすると、記録する前に j が変わってしまい、正しい桁が得られない。またmodは0か1しか返さないので配列へ入れるのはmodの結果、jの更新に使うのはdivの結果、という役割分担も判断の手掛かりになる。

選択肢ごとの解説

出典:令和元年度 秋期 基本情報技術者試験 午前 問1(IPA)

この問題は2回出題されています

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。