《機械》〈情報伝送及び処理〉[H28:問14]基数変換に関する計算問題

【問題】

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

次の文章は,基数の変換に関する記述である。

・2進数\(\mathrm {00100100}\)を10進数で表現すると\(\fbox {  (ア)  }\)である。
・10進数\(\mathrm {170}\)を2進数で表現すると\(\fbox {  (イ)  }\)である。
・2進数\(\mathrm {111011100001}\)を8進数で表現すると\(\fbox {  (ウ)  }\)である。
・16進数\(\fbox {  (エ)  }\)を2進数で表現すると\(\mathrm {11010111}\)である。

上記の記述中の空白箇所(ア),(イ),(ウ)及び(エ)に当てはまる組合せとして,正しいものを次の(1)~(5)のうちから一つ選べ。

【ワンポイント解説】

基数変換は暗記するしかないため,難しく感じるかもしれませんが,マスターすると確実に点数が取れます。本問を通じて,あらゆる変換をマスターして下さい。参考に各進数の対応表を示します。

【解答】

解答:(4)
(ア)
2進数を10進数にするためには各桁に\(2^{x}(x=0,1,2・・・\)乗をかけて導出します。具体的には,
\[
\begin{eqnarray}
\left( 00100100\right) _{2} &=&0\times 2^{7} +0\times 2^{6}+1\times 2^{5}+0\times 2^{4}+0\times 2^{3}+1\times 2^{2}+0\times 2^{1}+0\times 2^{0} \\[ 5pt ] &=&0+0+32+0+0+4+0+0 \\[ 5pt ] &=&36
\end{eqnarray}
\] と求められます。

(イ)
10進数を2進数にするためには,10進数を2で割っていき,その余りの数を下から並べると求められます。

どうしても上記の方法を思い出せない場合は(ア)と同じように,解答の各2進数を10進数にすることで求めることもできます。
\[
\begin{eqnarray}
\left( 10101010\right) _{2} &=&1\times 2^{7} +0\times 2^{6}+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 ] &=&128+0+32+0+8+0+2+0 \\[ 5pt ] &=&170
\end{eqnarray}
\] \[
\begin{eqnarray}
\left( 11010100\right) _{2} &=&1\times 2^{7} +1\times 2^{6}+0\times 2^{5}+1\times 2^{4}+0\times 2^{3}+1\times 2^{2}+0\times 2^{1}+0\times 2^{0} \\[ 5pt ] &=&128+64+0+16+0+4+0+0 \\[ 5pt ] &=&212
\end{eqnarray}
\]

(ウ)
2進数を8進数にするためには,2進数を3桁ずつ分け,それぞれを数値で出すことで求められます。

この解法も忘れてしまった時はどちらも10進数にすることで求めることもできます。
\[
\begin{eqnarray}
\left( 111011100001\right) _{2} &=&1\times 2^{11} +1\times 2^{10} +1\times 2^{9} +0\times 2^{8} +1\times 2^{7} +1\times 2^{6} \\[ 5pt ] &+&1\times 2^{5}+0\times 2^{4}+0\times 2^{3}+0\times 2^{2}+0\times 2^{1}+1\times 2^{0} \\[ 5pt ] &=&2048+1024+512+0+128+64+32+0+0+0+0+1 \\[ 5pt ] &=&3809
\end{eqnarray}
\] \[
\begin{eqnarray}
\left( 7321\right) _{8} &=&7\times 8^{3} +3\times 8^{2} +2\times 8^{1} +1\times 8^{0} \\[ 5pt ] &=&3584+192+16+1 \\[ 5pt ] &=&3793
\end{eqnarray}
\] \[
\begin{eqnarray}
\left( 7341\right) _{8} &=&7\times 8^{3} +3\times 8^{2} +4\times 8^{1} +1\times 8^{0} \\[ 5pt ] &=&3584+192+32+1 \\[ 5pt ] &=&3809
\end{eqnarray}
\]

(エ)
2進数を16進数にするためには,2進数を4桁ずつ分け,それぞれを数値で出すことで求められます。

2進数や8進数と同じように16進数でも同じような計算ができます。ただし,英字がいくつであるかは知っている必要があります。
\[
\begin{eqnarray}
\left( 11010111\right) _{2} &=&1\times 2^{7} +1\times 2^{6}+0\times 2^{5}+1\times 2^{4}+0\times 2^{3}+1\times 2^{2}+1\times 2^{1}+1\times 2^{0} \\[ 5pt ] &=&128+64+0+16+0+4+2+1 \\[ 5pt ] &=&215
\end{eqnarray}
\] \[
\begin{eqnarray}
\left( \mathrm{C}7\right) _{16} &=&\mathrm{C}(12)\times 16^{1} +7\times 16^{0} \\[ 5pt ] &=&192+7 \\[ 5pt ] &=&199
\end{eqnarray}
\] \[
\begin{eqnarray}
\left( \mathrm{D}7\right) _{16} &=&\mathrm{D}(13)\times 16^{1} +7\times 16^{0} \\[ 5pt ] &=&212+3 \\[ 5pt ] &=&215
\end{eqnarray}
\]