令和5年度 秋期 応用情報技術者試験 午前 問1

テクノロジ基礎理論

この問題は2023(R5)秋 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

2桁の2進数 x1x2x_1 x_2 が表す整数を xx とする。2進数 x2x1x_2 x_1 が表す整数を, xx の式で表したものはどれか。ここで, int(r)\text{int}(r) は非負の実数 rr の小数点以下を切り捨てた整数を表す。

解答・解説を読む

正解: 選択肢

解法のポイント

  • 2桁の2進数 x1x2x_1 x_2 を10進数の式で表すと x=2x1+x2x = 2x_1 + x_2 となることを理解する。
  • 逆順にした2進数 x2x1x_2 x_1 を10進数で表すと y=2x2+x1y = 2x_2 + x_1 となる。
  • int(x2)\text{int}\left(\frac{x}{2}\right) が何を表すか(x1x_1 であること)を見抜く。

解説

2進数 x1x2x_1 x_2 を10進数で表すと、x1x_1 は2の位、x2x_2 は1の位なので、
x=2x1+x2x = 2x_1 + x_2
と表すことができます(x1,x2x_1, x_2 はともに 0 または 1)。

求めたいのは 2進数 x2x1x_2 x_1 が表す整数なので、これを yy とおくと、
y=2x2+x1y = 2x_2 + x_1
となります。この yyxx を用いて表します。

ここで、int(x2)\text{int}\left(\frac{x}{2}\right) について考えます。
x2=2x1+x22=x1+x22 \frac{x}{2} = \frac{2x_1 + x_2}{2} = x_1 + \frac{x_2}{2}
x2x_2 は 0 または 1 なので、x22\frac{x_2}{2} は 0 または 0.5 です。
int(r)\text{int}(r) は小数点以下を切り捨てた整数を表すため、
int(x2)=x1 \text{int}\left(\frac{x}{2}\right) = x_1
となります。

x1=int(x2)x_1 = \text{int}\left(\frac{x}{2}\right) とわかったので、これを x=2x1+x2x = 2x_1 + x_2 に代入して x2x_2 について解くと、
x2=x2x1=x2int(x2)x_2 = x - 2x_1 = x - 2\text{int}\left(\frac{x}{2}\right)
となります。

最後に、y=2x2+x1y = 2x_2 + x_1x1x_1x2x_2 を代入します。
y=2(x2int(x2))+int(x2)y = 2\left(x - 2\text{int}\left(\frac{x}{2}\right)\right) + \text{int}\left(\frac{x}{2}\right)
y=2x4int(x2)+int(x2)y = 2x - 4\text{int}\left(\frac{x}{2}\right) + \text{int}\left(\frac{x}{2}\right)
y=2x3int(x2)y = 2x - 3\text{int}\left(\frac{x}{2}\right)

よって、正解は です。

各選択肢の解説

具体例として、2進数 1010x1=1,x2=0x_1=1, x_2=0)の場合を考えてみます。
このとき、x=2x = 2 となり、求めたい 2進数 0101 が表す整数は y=1y = 1 です。
また、int(x2)=int(1)=1\text{int}\left(\frac{x}{2}\right) = \text{int}(1) = 1 となります。
これらを各選択肢の式に代入して、11 になるかを確認します。

  • : 2(2)+4(1)=812(2) + 4(1) = 8 \neq 1 となり誤りです。
  • : 2(2)+5(1)=912(2) + 5(1) = 9 \neq 1 となり誤りです。
  • : 2(2)3(1)=12(2) - 3(1) = 1 となり、結果が一致するため 正解 です。
  • : 2(2)4(1)=012(2) - 4(1) = 0 \neq 1 となり誤りです。