補数と負数表現の試験問題への適用

補数問題は、ビット幅・符号付きか符号なしか・何を求めるかを読み落とすと簡単に誤答する。ここでは生成、復元、加算、符号拡張、オーバフローの判断を問題形式でつなげる。

この単元で学ぶこと

  • 固定ビット幅の意味と役割を説明できる
  • 反転して+1の意味と役割を説明できる
  • 符号付き解釈の意味と役割を説明できる
  • 符号付き演算の途中結果を検算し、オーバフローを判定できる

本文解説

試験では「2の補数を求める」だけでなく、2の補数表現の加算結果を符号付きとして解釈する問題や、範囲外を見抜く問題が出る。計算前にビット幅を枠で囲み、途中でも同じ幅を保つと安全である。

固定ビット幅 補数計算では何ビット表現かを固定し、その幅の中で反転・加算する。 同じ数でも4ビットと8ビットではビット列が異なる。

反転して+1 2の補数を求める基本手順。負数から絶対値へ戻すときにも同じ操作を使える。 2の補数操作は同じ幅で2回適用すると元の値に戻る。

符号付き解釈 最上位ビット1の2の補数は負数として読む。 符号なしの0〜255などとは解釈が異なる。

符号付きオーバフロー 同符号同士を加算して結果の符号が逆になったときなどに発生する。 桁あふれのキャリーだけで符号付きオーバフローを判断しない。

符号拡張 ビット幅を広げるとき最上位ビットを左へ複製して符号付き値を保つ。 正数は0、負数は1で左側を埋める。

選択肢問題では、まず10進数で期待する符号と大きさを概算する。その後ビット演算を行い、結果の最上位ビットと範囲が直感と一致するかを見る。正数+正数で負のビット列になったらオーバフローを疑う。

8ビットで-37は+37=00100101、反転11011010、+1で11011011。11011011を符号付きで戻すと37なので-37と相互確認できる。

図解

補数問題の判定フロー
ビット幅固定→符号確認→反転+1→範囲・オーバフロー確認の順で解く。

重要ポイント

  • 固定ビット幅: 補数計算では何ビット表現かを固定し、その幅の中で反転・加算する。
  • 反転して+1: 2の補数を求める基本手順。負数から絶対値へ戻すときにも同じ操作を使える。
  • 符号付き解釈: 最上位ビット1の2の補数は負数として読む。
  • 符号付きオーバフロー: 同符号同士を加算して結果の符号が逆になったときなどに発生する。
  • 「キャリーが出たか」と「符号付きオーバフローしたか」は別の判定である。

間違えやすい点

  • 符号なし整数の桁あふれと符号付きオーバフローを混同しない。
  • 8ビット指定で9ビット目をそのまま結果に残さない。
  • 負数の絶対値へ戻す途中で+1を忘れない。

用語解説

固定ビット幅
補数計算では何ビット表現かを固定し、その幅の中で反転・加算する。
反転して+1
2の補数を求める基本手順。負数から絶対値へ戻すときにも同じ操作を使える。
符号付き解釈
最上位ビット1の2の補数は負数として読む。
符号付きオーバフロー
同符号同士を加算して結果の符号が逆になったときなどに発生する。
符号拡張
ビット幅を広げるとき最上位ビットを左へ複製して符号付き値を保つ。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。