戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2015年 秋期 午前(科目A)01


問題文

10進数の演算式7÷32の結果を2進数で表したものはどれか。

選択肢

0.001011
0.001101
0.00111(正解)
0.0111

10進数の演算式7÷32の結果を2進数で表したものはどれか。【午前2 解説】

要点まとめ

  • 結論:7÷32は2進数で0.00111となるため、選択肢の中ではが正解であり桁移動で即導けます。
  • 根拠:7は2進で111、32はだから小数点を左に5ビット移動すれば正しい2進表現が得られます。
  • 差がつくポイント:2の冪で割るときは「小数点を左へnビット移動」することを暗記し、桁数の数え間違いを防ぎます。

正解の理由

7を2進数で表すと111、32はなので割り算は小数点を左に5ビット移動する操作です。
したがって 111 を 5 桁左に動かすと 0.00111 になり、これは選択肢のうち に一致します。
また確認として各ビットを分数に戻すと となり一致します。

よくある誤解

  • 「左へ/右へ」の混同:2^nで割るときは小数点を左へ移す(数値が小さくなる)ことを忘れやすい。
  • 桁数の数え間違い:小数点移動の回数を1つ間違えると答えが大きく変わるため、桁を手で書いて確かめる癖をつける。
  • 小数の直接変換ミス:10進の小数を2進に変換する際、掛け算法で誤って丸めると近似値を選んでしまう。

解法ステップ

  1. 分子7を2進数で表す:7 → 111。
  2. 分母32を2の冪で表す:32 =
  3. 2^5で割る操作は小数点を左へ5ビット移動することと同値なので、111 → 0.00111。
  4. 確認:各ビットを分数に戻し となるか確認する。

選択肢別の誤答解説

  • ア: 0.001011
    この値は で、 と一致しない。
  • イ: 0.001101
    この値は で正解より小さい。
  • : 0.00111
    これは となり正解である。
  • エ: 0.0111
    この値は で大きすぎる。

補足コラム

  • 一般則:整数をで割る場合、2進表記の小数点を左へnビット移動するだけで答えが得られます。
  • 分母が2の冪でない場合:小数部分を求めるには「×2して整数部を取り出す」操作を繰り返し、周期的な繰り返しが出ることがあります(循環小数)。
  • 実践コード例(Python):
def fraction_to_bin(numerator, denominator, bits=10):
    x = numerator / denominator
    res = '0.'
    for _ in range(bits):
        x *= 2
        if x >= 1:
            res += '1'
            x -= 1
        else:
            res += '0'
    return res

print(fraction_to_bin(7, 32, bits=8))  # -> '0.00111...'
この例は有限小数(0.00111)を正しく生成します。

FAQ

Q1: なぜ小数点を左に動かすのですか?
A1: 2^nで割るということは2進で桁がnつ分だけ価値が下がる(2の位が1つ下がる)操作に対応するため、小数点を左に移動します。
Q2: 分母が2の冪でない場合はどうすればいいですか?
A2: 「小数部分を2倍して整数部を取り出す」方法を繰り返すと2進小数が得られ、循環する場合は周期を検出できます。
Q3: 表示桁数が足りないときはどう確認する?
A3: 十分なビット数で生成してから、元の分数に戻して一致するかを確認すれば良いです。

関連キーワード: 2進数、進数変換、分数の2進表現、ビットシフト、小数点移動、循環小数、基数変換
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について