基本情報技術者試験の令和5年度の公開問題を解いてみよう。
今回のテーマは、「基数変換」である。
問1 16進小数0.Cを10進小数に変換したものはどれか。
ア 0.12
イ 0.55
ウ 0.75
エ 0.84
正解:ウ
16進数のCは、10進数の12なので、
0.C = 12×$\dfrac{1}{16}$ = 0.75
なお、「固定小数点」については、本ブログでもご紹介している。
K進数の小数点以下nけた目は、K-nの重みがついている。
2進数の基数は2なので、小数点以下nけた目には、2-nの重みがついている。
なお、小数点位置は固定で変わらない。
2進数の101.101を10進数に変換してみよう。
上の重み表の重みを足す。整数:4+1=5、小数:0.5+0.125=0.625
したがって、5.625となる。
なお、分数の重みを知っていると本問のように容易に解ける問題がある。
2進数の0.1101を10進数に直してみよう。
① $1×2^{-1}+1×2^{-2}+0×2^{-3}+1×2^{-4} = 0.8125$
② $\frac{1}{2}+\frac{1}{4}+\frac{1}{16}=\frac{8+4+1}{16}=\frac{13}{16}=0.8125$
③ 省略
④ 0.5+0.25+0.0625=0.8125
16進数の基数は16なので、小数点以下nけた目には、16-nの重みがついている。
なお、この重み表で計算する問題は滅多に出ない。本問では、16-1の知識で対応できる。
(参考)
令和07年 基本情報技術者 パーフェクトラーニング過去問題集 山本 三雄 (著) 技術評論社
コメント