応用情報技術者 2009年 秋期 午前2 問01
問題文
12進数の表現で、2の補数を使用する理由はどれか。
選択肢
ア:値が1のビット数を数えることで、 ビット誤りを検出できる。
イ:減算を、負数の作成と加算処理で行うことができる。(正解)
ウ:除算を減算の組合せで行うことができる。
エ:ビットの反転だけで、 負数を求めることができる。
2の補数を採用する主目的【午前2 解説】
要点まとめ
- 結論:イ 減算を「負数化+加算」だけで実装し、ハードウェア回路を単純化できる
- 根拠:2の補数は “加算器を流用して減算” できる唯一の符号付き表現で、桁あふれ判定も容易
- 差がつくポイント:1の補数やビット反転ではなく「キャリーの扱い」の違いが減算高速化を左右する
正解の理由
2の補数表現で を作り とすれば、減算 を加算器だけで処理できる。
回路を「加算器+インバータ+1加算」へ統一でき、演算ユニットが簡素・高速になるため。
回路を「加算器+インバータ+1加算」へ統一でき、演算ユニットが簡素・高速になるため。
よくある誤解
2の補数にするとビット反転だけで負数が得られると思われがちだが、「反転+1加算」が必須。
解法ステップ
- 選択肢の機能が“2の補数がもたらす利点”かを列挙
- 2の補数の最大の利点=加算器一本で減算可能を想起
- 減算と関連するキーワードを含む選択肢を探し、イ を確定
選択肢別の誤答解説
- ア: パリティチェックは2の補数でなくても実装可。奇偶判定はビット数だけで済む
- イ: 正解。減算を加算へ一本化しハードを簡約
- ウ: 除算→繰返し減算は可能だが,2の補数固有の利点ではない
- エ: 1の補数ならビット反転のみで負数だが,2の補数は“反転+1”が必須
補足コラム
2の補数は「±0 が一意」「符号桁も加算器に含めて計算」「桁あふれ検出が容易」という三大メリットがある。特に桁あふれは、最上位2ビットのキャリー XOR で即判定できる。
FAQ
Q: 1の補数ではなく2の補数が主流になった決定的理由は?
A: “+0 / –0 の二重表現” がなくなり、演算・比較回路を簡素化できたからです。
A: “+0 / –0 の二重表現” がなくなり、演算・比較回路を簡素化できたからです。
Q: 2の補数化は必ず「ビット反転+1」?
A: はい。ビット反転だけでは1の補数となり計算誤差が生じます。
A: はい。ビット反転だけでは1の補数となり計算誤差が生じます。
関連キーワード: 2の補数、減算、負数表現、キャリー、ALU

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

