基本情報技術者試験 |
2005年度 = 平成17年度・春期 |
午前 |
問1 |
次の流れ図は、10進整数j (0<j <100)を2進数に変換する処理を表している。2進数は下位けたから順に、配列NISHIN (1)からNISHIN (8)に格納される。流れ図のa及びbに入る処理はどれか。ここで、j div 2はj を2で割った商の整数部分を、j mod 2はj を2で割った余りを表す。
| a
| b
|
ア
| j div 2 → j
| j mod 2 → NISHIN (k )
|
イ
| j div 2 → NISHIN (k )
| j mod 2 → j
|
ウ
| j mod 2 → j
| j div 2 → NISHIN (k )
|
エ
| j mod 2 → NISHIN (k )
| j div 2 → j
|
エ
10進整数から2進整数への基数変換のアルゴリズムに関する問題です。
10進整数を2進整数に変換する際は、変換元の10進数を2で割った剰余(余り)を求め、その商に対して除算を繰り返していきます。繰返しは、2で割った商が0になるまで続けます。除算の過程で求められた剰余を逆に並べたものが、変換後の2進数です。
例として、10進整数57を2進数に変換する過程を以下に示します。
数(商) 剰余
57 ÷ 2 1
28 ÷ 2 0
14 ÷ 2 0
7 ÷ 2 1
3 ÷ 2 1 変換後
1 ÷ 2 1 → 111001
j を2で割った余りを配列NISHIN に格納するとともに、j の値を2で割っていくわけですから、正解はエとなります。