《機械》〈情報伝送及び処理〉[R3:問14]2進数,10進数,16進数の変換及び関係に関する論説問題

【問題】

【難易度】★★★☆☆(普通)

\( \ 2 \ \)進数,\( \ 10 \ \)進数,\( \ 16 \ \)進数に関する記述として,誤っているものを次の(1)~(5)のうちから一つ選べ。

(1) \( \ 16 \ \)進数の\( \ \left( 6\right) _{16} \ \)を\( \ 16 \ \)倍すると\( \ \left( 60\right) _{16} \ \)になる。

(2) \( \ 2 \ \)進数の\( \ \left( 1010101\right) _{2} \ \)と\( \ 16 \ \)進数の\( \ \left( 57\right) _{16} \ \)を比較すると\( \ \left( 57\right) _{16} \ \)の方が大きい。

(3) \( \ 2 \ \)進数の\( \ \left( 1011\right) _{2} \ \)を\( \ 10 \ \)進数に変換すると\( \ \left( 11\right) _{10} \ \)になる。

(4) \( \ 10 \ \)進数の\( \ \left( 12\right) _{10} \ \)を\( \ 16 \ \)進数に変換すると\( \ \left( \mathrm {C}\right) _{16} \ \)になる。

(5) \( \ 16 \ \)進数の\( \ \left( 3\mathrm {D}\right) _{16} \ \)を\( \ 2 \ \)進数に変換すると\( \ \left( 111011\right) _{2} \ \)になる。

【ワンポイント解説】

基数変換に関する問題です。
基数変換は最初は少し戸惑うかもしれませんが,慣れてしまうとパターンが分かるため,確実な得点源となります。また,すべて\( \ 10 \ \)進数にしてしまうのも一つの作戦として有効です。
試験本番までに確実に理解し,得点できるようにしましょう。

1.主な進数の対応表
コンピュータ等のディジタル信号は主に\( \ 2 \ \)進数が使用されるため,電験でも基数変換は出題されます。
電験で出題される\( \ 2 \ \)進数,\( \ 8 \ \)進数,\( \ 10 \ \)進数,\( \ 16 \ \)進数の対応表は下表の通りとなります。表を覚えるのではなくルールを理解するようにしましょう。
\[
\begin{array}{|r|r|r|r|}
\hline
 2 \ 進数  & 8 \ 進数  & 10 \ 進数  & 16 \ 進数  \\
\hline
0 & 0 & 0 & 0 \\
\hline
1 & 1 & 1 & 1 \\
\hline
10 & 2 & 2 & 2 \\
\hline
11 & 3 & 3 & 3 \\
\hline
100 & 4 & 4 & 4 \\
\hline
101 & 5 & 5 & 5 \\
\hline
110 & 6 & 6 & 6 \\
\hline
111 & 7 & 7 & 7 \\
\hline
1000 & 10 & 8 & 8 \\
\hline
1001 & 11 & 9 & 9 \\
\hline
1010 & 12 & 10 & \mathrm {A} \\
\hline
1011 & 13 & 11 & \mathrm {B} \\
\hline
1100 & 14 & 12 & \mathrm {C} \\
\hline
1101 & 15 & 13 & \mathrm {D} \\
\hline
1110 & 16 & 14 & \mathrm {E} \\
\hline
1111 & 17 & 15 & \mathrm {F} \\
\hline
10000 & 100 & 16 & 10 \\
\hline
\end{array}
\]

2.\( \ 10 \ \)進数から\( \ 2 \ \)進数への変換
\( \ 10 \ \)進数から\( \ 2 \ \)進数への変換は,\( \ 2 \ \)で割った余りを下から順に並べると求められます。
具体的に\( \ 10 \ \)進数の\( \ \left( 30\right) _{10} \ \)を\( \ 2 \ \)進数へ変換すると,
\[
\begin{array}{cccc}
2) & 30 & & & \\
\hline
2) & 15 & \cdots & 0 \\
\hline
2) & 7 & \cdots & 1 \\
\hline
2) & 3 & \cdots & 1 \\
\hline
2) & 1 & \cdots & 1 \\
\hline
& 0 & \cdots & 1 \\
\end{array}
\] ゆえに,
\[
\begin{eqnarray}
\left( 30\right) _{10} &=&\left( 11110\right) _{2} \\[ 5pt ] \end{eqnarray}
\] となります。\( \ 8 \ \)進数や\( \ 16 \ \)進数への変換も同様に行うことができます。

3.\( \ 2 \ \)進数から\( \ 10 \ \)進数への変換
\( \ 2 \ \)進数を\( \ 10 \ \)進数にするためには各桁に\( \ 2^{x}(x=0,1,2・・・) \ \)乗をかけて導出できます。
例えば,\( \ 2 \ \)進数の\( \ \left( 101010\right) _{2} \ \)を\( \ 10 \ \)進数へ変換すると,
\[
\begin{eqnarray}
\left( 101010\right) _{2}&=&1\times 2^{5}+0\times 2^{4}+1\times 2^{3}+0\times 2^{2}+1\times 2^{1}+0\times 2^{0} \\[ 5pt ] &=&32+0+8+0+2+0 \\[ 5pt ] &=&42 \\[ 5pt ] \end{eqnarray}
\] と求められます。\( \ 8 \ \)進数や\( \ 16 \ \)進数も同様に求められます。

4.\( \ 2 \ \)進数から\( \ 16 \ \)進数への変換
\( \ 2 \ \)進数を\( \ 16 \ \)進数にするためには,\( \ 4 \ \)桁ごとに\( \ 16 \ \)進数に変換していきます。
例えば,\( \ 2 \ \)進数の\( \ \left( 11011010\right) _{2} \ \)を\( \ 16 \ \)進数へ変換すると,
\[
\begin{eqnarray}
\left( 1101\right) _{2}&=&\left( \mathrm {D}\right) _{16} \\[ 5pt ] \left( 1010\right) _{2}&=&\left( \mathrm {A}\right) _{16} \\[ 5pt ] \end{eqnarray}
\] となるので,
\[
\begin{eqnarray}
\left( 11011010\right) _{2}&=&\left( \mathrm {DA}\right) _{16} \\[ 5pt ] \end{eqnarray}
\] と求められます。\( \ 16 \ \)進数から\( \ 2 \ \)進数への変換も逆の操作により求めることができます。

【解答】

解答:(5)
(1)正しい
\( \ \left( 6\right) _{16} =\left( 6\right) _{10} \ \)なので,\( \ 16 \ \)倍すると,\( \ \left( 96\right) _{10} \ \)となり,ワンポイント解説「2.\( \ 10 \ \)進数から\( \ 2 \ \)進数への変換」の通り,\( \ 16 \ \)進数に変換すると,
\[
\begin{array}{cccc}
16) & 96 & & & \\
\hline
16) & 6 & \cdots & 0 \\
\hline
& 0 & \cdots & 6 \\
\end{array}
\] となり,
\[
\begin{eqnarray}
\left( 96\right) _{10} &=&\left( 60\right) _{16} \\[ 5pt ] \end{eqnarray}
\] と変換することができます。

(2)正しい
ワンポイント解説「4.\( \ 2 \ \)進数から\( \ 16 \ \)進数への変換」の通り,\( \ 2 \ \)進数の\( \ \left( 1010101\right) _{2} \ \)を\( \ 16 \ \)進数に変換すると,
\[
\begin{eqnarray}
\left( 1010101\right) _{2}&=&\left( 0101 \ 0101\right) _{2} \\[ 5pt ] &=&\left( \mathrm {55}\right) _{16} \\[ 5pt ] \end{eqnarray}
\] となるので,\( \ \left( 1010101\right) _{2}\lt \left( 57\right) _{16} \ \)となります。

(3)正しい
ワンポイント解説「3.\( \ 2 \ \)進数から\( \ 10 \ \)進数への変換」の通り,\( \ 2 \ \)進数の\( \ \left( 1011\right) _{2} \ \)を\( \ 10 \ \)進数に変換すると,
\[
\begin{eqnarray}
\left( 1011\right) _{2}&=&1\times 2^{3}+0\times 2^{2}+1\times 2^{1}+1\times 2^{0} \\[ 5pt ] &=&8+0+2+1 \\[ 5pt ] &=&11 \\[ 5pt ] \end{eqnarray}
\] と求められます。

(4)正しい
ワンポイント解説「1.主な進数の対応表」の通り,\( \ 10 \ \)進数の\( \ \left( 12\right) _{10} \ \)を\( \ 16 \ \)進数に変換すると\( \ \left( \mathrm {C}\right) _{16} \ \)となります。

(5)誤り
\[
\begin{eqnarray}
\left( \mathrm {3}\right) _{16}&=&\left( 0011\right) _{2} \\[ 5pt ] \left( \mathrm {D}\right) _{16}&=&\left( 1101\right) _{2} \\[ 5pt ] \end{eqnarray}
\] となるので,
\[
\begin{eqnarray}
\left( \mathrm {3D}\right) _{16}&=&\left( 00111101\right) _{2} \\[ 5pt ] &=&\left( 111101\right) _{2} \\[ 5pt ] \end{eqnarray}
\] と求められます。したがって,\( \ \left( 111011\right) _{2} \ \)は誤りとなります。