CO-S25情報Ⅰ 対策問題

コンピュータとプログラミング思考・計算

10進法の小数「0.25」を2進法で表すとどれか。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

2進小数(小数点以下の重みは1/2, 1/4, …) を問う問題です。整数と同じく「桁の重み」で考えれば解けます。

解説

整数の2進数では桁の重みが 1, 2, 4, 8, … と2倍ずつ増えました。小数点より右では逆に、重みが 1/2(=0.5), 1/4(=0.25), 1/8(=0.125), … と半分ずつ小さくなります。10進小数の重みが 1/10, 1/100, … になるのと同じ理屈です。

0.25を2進小数にします。

  1. 小数第1位の重みは 1/2 = 0.5 → 0.25より大きいので使えない → 0
  2. 小数第2位の重みは 1/4 = 0.25 → ちょうど0.25なので1を立てる
  3. 残りは 0.25 - 0.25 = 0 → これで終わり
  4. よって 0.25(10進) = 0.01(2進)

代表的な対応を覚えておくと速く解けます。0.5 = 0.1、0.25 = 0.01、0.75 = 0.5+0.25 = 0.11、0.625 = 0.5+0.125 = 0.101。どれも「重みの組み合わせで表せるか」を考えるだけです。

一方、10進の0.1のように、1/2, 1/4, 1/8, …の組み合わせでは正確に表せない小数もあります。これがコンピュータの計算誤差(丸め誤差)の原因で、共通テストでは「0.1を2進数で表すと無限小数になる」という知識問題としても出ます。表せる小数と表せない小数がある、という視点まで持っておきましょう。

選択肢の確認

1.○ 0.25はちょうど1/4なので、1/4の位に1を立てて0.01。
2.× 0.1(2進)は1/2 = 0.5にあたる。
3.× 0.001(2進)は1/8 = 0.125にあたる。
4.× 0.11(2進)は1/2+1/4 = 0.75にあたる。

ここだけは覚えよう

小数点以下の重みは1/2、1/4、1/8… — 0.25=0.01、0.5=0.1、0.75=0.11は即答できるように。

関連問題

CO-S24CO-S26