この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

10進数の小数を2進数で表す基本問題です。7÷32 を計算すると 0.21875 ですが、小数の値をそのまま2進数に変換するより、分数のまま2の累乗で表すのが近道です。32 は 2⁵ なので、7÷32 = 7×2⁻⁵ と書けます。さらに分子の 7 は2進数で 111 ですから、7×2⁻⁵ = (2²+2¹+2⁰)×2⁻⁵ = 2⁻³+2⁻⁴+2⁻⁵ となります。2進小数では小数第1位が 2⁻¹、第2位が 2⁻²…に対応するので、2⁻³・2⁻⁴・2⁻⁵ の位が1になり、0.00111 が得られます。検算として 0.00111(2) = 1/8+1/16+1/32 = 4/32+2/32+1/32 = 7/32 となり一致します。割り算を小数で実行してから0.21875に2を掛け続ける方法(整数部を順に取る方法)でも同じ答えになりますが、分母が2の累乗の場合は「分子を2進数にして小数点を分母の指数だけ左にずらす」と覚えると速く確実です。正解はウです。

なぜ他の選択肢は違うのか

選択肢 ア
0.001011(2) を10進数に直すと 1/8+1/32+1/64 = 8/64+2/64+1/64 = 11/64 となり、7/32(=14/64)とは一致しません。7 の2進表現 111 を誤って 1011 のように扱ったり、小数点の位置を1桁余分にずらしたりすると現れる形です。2進小数の問題では、得られた答えを必ず分数に戻して元の値と突合する検算を行うことで、この種の桁ずれミスを防げます。
選択肢 イ
0.001101(2) は 1/8+1/16+1/64 = 8/64+4/64+1/64 = 13/64 に相当し、7/32(14/64)とはわずかに異なります。7(111)のビット並びを 1101 のように取り違えた場合に生じやすい値です。一見近い値なので暗算では見落としがちですが、各ビットを分数に展開して足し合わせれば不一致が確実に分かります。「近い値の選択肢ほど検算で確かめる」姿勢が重要です。
選択肢 エ
0.0111(2) は 1/4+1/8+1/16 = 7/16 に相当します。ビットの並び 111 は正しいものの、小数点からの位置が1桁足りず、値が2倍になっています。7×2⁻⁵ の指数 −5 を −4 と誤ると、小数点のシフト量を1桁少なく見積もってこの形になります。32=2⁵(2を5回掛ける)であることを確認し、小数点を5桁ずらす(先頭に0を補う)ことを意識すれば防げる誤りです。

解くときのポイント

分母が2の累乗の分数は「分子を2進数にして、小数点を指数分だけ左へずらす」が最速。答えが出たら分数に戻して検算する習慣をつけよう。