16進数の小数0.248を10進数の分数で表したものはどれか。
ア \(\frac{31}{32}\)
イ \(\frac{31}{125}\)
ウ \(\frac{31}{512}\)
エ \(\frac{73}{512}\)
解説を読む
正解:エ
解説:
16進数を10進数に変換するには各桁の重みを数字にかけ合わせて加算します。
\begin{eqnarray}
(0.248)_{16}&=&\left(2\times16^{-1}+4\times16^{-2}+8\times16^{-3}\right)_{10}\\
&=&\left(\frac{2}{16^1}+\frac{4}{16^2}+\frac{8}{16^3}\right)_{10}\\
&=&\left(\frac{2}{16}+\frac{4}{256}+\frac{8}{4096}\right)_{10}\\
&=&\left(\frac{1}{8}+\frac{1}{64}+\frac{1}{512}\right)_{10}\\
&=&\left(\frac{64}{512}+\frac{8}{512}+\frac{1}{512}\right)_{10}\\
&=&\left(\frac{64+8+1}{512}\right)_{10}\\
&=&\left(\frac{73}{512}\right)_{10}\\
\end{eqnarray}
上記の通り\(\frac{73}{512}\)となりエが正解です。
本問は考え方自体は難しくありませんが、計算機を使えない現在の情報処理試験では少し時間が掛かる問題になりそうです。問1で時間を使ってしまうと後半で焦りが出ることもあるので実際の試験では考え方を整理したら一度飛ばして最後に時間が余ればゆっくり計算をする方法も良いかもしれません。
解説を閉じる
コメント