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

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


問題文

10進数-5.625を、8ビット固定小数点形式による2進数で表したものはどれか。ここで、小数点位置は3ビット目と4ビット目の間とし、負数には2の補数表現を用いる。
基本情報技術者 2011年 秋期 午前(科目A) 問02の問題画像

選択肢

01001100
10100101
10100110(正解)
11010011

10進数-5.625を、8ビット固定小数点形式による2進数で表したものはどれか。小数点位置は3ビット目と4ビット目の間、負数には2の補数表現を用いる。【午前2 解説】

要点まとめ

  • 結論:小数点が4ビット目と3ビット目の間のQ4.4表現で、-5.625は8ビットで10100110()となる。
  • 根拠:固定小数点は値×で整数化、 を8ビット2の補数で表すと10100110になる。
  • 差がつくポイント:小数点位置の解釈(Q4.4)とLSB(1/16)の扱いを誤らないことが合否を分ける。

正解の理由

正解: (10100110)。手順は次の通りです。まず小数点位置が4分の1(Q4.4)なので、値を 倍して整数化します。
。絶対値90を2進数で表すと (+90)。負数は2の補数なのでビット反転して1を加えます:
反転 + 1 → 。これが8ビット固定小数点で表した -5.625 のビット列です。

よくある誤解

  • 小数点位置を間違える:小数点がQ4.4(上位4ビットが整数部)である点をQ3.5などと誤認すると桁がずれて誤答になります。
  • 符号表現の混同:負数を表す際に2の補数でなく符号+絶対値(符号ビット)で処理すると誤ったビット列になります。
  • 丸め誤差の見落とし:小数を固定小数点化する際、LSBが単位であることを忘れると0.0625単位の誤差を見逃します。

解法ステップ

  1. 問題の小数点位置を確認し、Q形式を決める(ここはQ4.4)。
  2. 表現したい値に を掛けて整数化する:
  3. 絶対値の二進表現を求める:(8ビット)。
  4. 負数なので2の補数を取る:ビット反転 → 加算1 →
  5. 8ビットで表記し、最終的な固定小数点表現を得る。

選択肢別の誤答解説

  • ア: 01001100
    -> 、値は (正の4.75)。符号が正で桁も異なり全く別の値です。
  • イ: 10100101
    -> 2の補数で解析すると負数で、 を表します。目的の -5.625 と )違いで、LSBが一つ違う誤りです。
  • ウ: 10100110(正解)
    -> は 2の補数で を正確に表すため正解です。
  • エ: 11010011
    -> 、符号付きでは 、よって値は 。桁と符号の解釈で大きく異なります。

補足コラム

固定小数点(Qm.n)では表現値 =(符号付き整数)/ です。今回の小数点位置は「上位4ビットが整数部、下位4ビットが小数部」なので Q4.4。負数を直接作る別の方法として「目的の値を16倍し負の整数をそのまま8ビット2の補数で計算する」方法が実務的に早いです。参考の簡単な検算用コード例:
# -5.625 を Q4.4 で表す(8ビット2の補数)
v = -5.625
scaled = int(round(v * 16))       # -90
twos = (scaled + (1<<8)) & 0xff   # 8ビット2の補数表現
print(f"{twos:08b}")              # 出力: 10100110

FAQ

Q. 小数点位置が問題で明示されていなければどうする?
A. 問題文や図で必ず小数点位置(境界)が示されます。示されない場合は設問の前提を確認し、指定がないときは明言してから解答します。
Q. なぜ を掛けるのか?
A. 小数点が4ビット分右にある(下位4ビットが小数部)ため、固定小数点表現では値×で整数化するのが基本です。
Q. 2の補数の求め方がわからないのですが?
A. 正のビット列を反転して1を加えるか、負の整数 を表現する場合は を8ビットで表すと同じ結果になります。

関連キーワード: 固定小数点, 2の補数, Q4.4, ビット配置, 小数点位置, 2進数変換, LSB, 丸め誤差
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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