応用情報技術者 2013年 秋期 午前2 問03
問題文
負の整数を表現する代表的な方法として、次の3種類がある。
a 1の補数による表現
b 2の補数による表現
c 絶対値に符号を付けた表現(左端ビットが0の場合は正,1の場合は負)
4ビットのパターン1101をa〜cの方法で表現したものと解釈したとき、値が小さい順になるように三つの方法を並べたものはどれか。
選択肢
ア:a, c, b
イ:b, c, a
ウ:b, a, c
エ:c, b, a(正解)
🔒 解説は解答すると表示されます
負数の表現法比較【午前2解説】
正解の理由
4ビットパターン1101を各表現法で値に直すと、符号付き絶対値(c)は-5、2の補数(b)は-3、1の補数(a)は-2になります。したがって値が小さい順(=数直線で左から右へ)に並べると「c, b, a」となり、選択肢のうち正しいのは エ です。
計算の要点をまとめると次のとおりです。
- 符号付き絶対値(c): MSB=1 → 負、残り3ビット101 = 5 → 値は -5
- 2の補数(b): MSB=1 → 負、1101 の二の補数の絶対値は 3 → 値は -3
- 1の補数(a): MSB=1 → 負、ビット反転で 0010 = 2 → 値は -2
解法ステップ
- MSB(最上位ビット)が1か0かで正負を判定する(3方式ともMSB=1なら負の表現)。
- 各方式ごとに「負のときの値の求め方」を使って絶対値を計算する。
- 符号付き絶対値(sign-magnitude): 残りビットをそのまま絶対値として読む。
- 1の補数: 全ビットを反転して得た2進数を絶対値とする。
- 2の補数: 全ビットを反転して1を加える(あるいは符号付きの算術変換 を用いる)。
- 得られた値を比較して昇順(数直線で左から右)に並べる。
具体的な計算(4ビット、1101)
- 符号付き絶対値 (c): MSB=1 → 負、残り101 = → 値
- 1の補数 (a): 全ビット反転 → → 値
- 2の補数 (b): 全ビット反転 に → → 値
並べると → c, b, a
選択肢別の誤答解説
- ア: a, c, b
- これは1の補数(-2)を最小と誤認した順番。実際は符号付き絶対値の-5が最小なので誤り。
- イ: b, c, a
- 2の補数(-3)が最小とするが、符号付き絶対値(-5)の方がさらに小さいため誤り。
- ウ: b, a, c
- ここでは2の補数(-3) < 1の補数(-2) としているが、符号付き絶対値(-5)を最後にしている点で完全に順序誤り。
- エ: c, b, a
- 正解。上の計算の通り、-5(c) < -3(b) < -2(a)となる。
よくある誤解
- 「1の補数と2の補数は絶対値が同じ」
- 間違い。1の補数は「全ビット反転」で得られる絶対値、2の補数は「反転して+1」で得るため絶対値が1ずれることが多いです(負数側で差が出る)。
- 「符号付き絶対値は最も小さい負数を表せる」
- 符号付き絶対値は表現できる絶対値の最大が で、2の補数の最小値()よりは小さくなり得ません。具体例(4ビット)では符号付き絶度の最小は -7、2の補数の最小は -8。
- 「0はどの方式でも1通りだけ」
- 1の補数と符号付き絶対値では +0 と -0 の2表現が存在する(例: 0000 と 1000)。2の補数は0が一意。
補足コラム
- 一般式(nビット)
- 2の補数で符号ビットが1のときの値: (はそのビット列を符号なし整数として解釈した値)。
- 表現範囲(nビット):
- 符号付き絶対値 / 1の補数: から (ただし +0 と -0 が存在)
- 2の補数: から (0は一意)
- 実務上の利点
- 加減算を回路で扱う場合、2の補数は正負混在でも同じ加算回路で処理できるため広く採用されています。
FAQ
Q1: 2の補数の値を速く求める実用的な方法は?
A1: 「もしMSB=0ならそのまま符号なしとして読む。MSB=1なら、符号なし値Uからを引く()」。4ビットなら を引く。1101(U=13)→ 13-16 = -3。
A1: 「もしMSB=0ならそのまま符号なしとして読む。MSB=1なら、符号なし値Uからを引く()」。4ビットなら を引く。1101(U=13)→ 13-16 = -3。
Q2: 1の補数と2の補数でゼロの扱いはどう違う?
A2: 1の補数と符号付き絶対値は +0 と -0 の2通りが存在する。2の補数はゼロ表現が一意。
A2: 1の補数と符号付き絶対値は +0 と -0 の2通りが存在する。2の補数はゼロ表現が一意。
Q3: どうして2の補数が一般に使われる?
A3: 符号付きの加減算で桁あふれ(キャリー)の扱いが一貫しており、専用の符号処理なしに加算器をそのまま使えるため設計が簡単で効率的です。
A3: 符号付きの加減算で桁あふれ(キャリー)の扱いが一貫しており、専用の符号処理なしに加算器をそのまま使えるため設計が簡単で効率的です。
関連キーワード: 1の補数、2の補数、符号付き絶対値、負数表現、表現範囲、ゼロの表現、ビット反転、二進数変換

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

