CO-K21|情報Ⅰ 対策問題
コンピュータ内部で負の整数を表すときによく使われる、「ある数を足すと桁あふれして0になる数」で負数を表現する方法を何というか。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
2の補数(負の数の表現) を問う問題です。「反転して1を足す」という作り方まで覚えましょう。
解説
コンピュータには「マイナス記号」がないため、負の数もビット列で表す工夫が必要です。その代表が2の補数で、「ある数に足すと桁あふれして0になる数」を負数として使う方法です。
作り方は簡単で、「各ビットを反転する(0と1を入れ替える)→1を足す」の2手順です。4ビットの例で確かめます。
- 3 = 0011
- 反転 → 1100
- 1を足す → 1101 (これが−3)
検算: 0011 + 1101 = 10000。4ビットからあふれた先頭の1を捨てると0000 = 0。確かに3+(−3)=0になっています。
この方式の最大の利点は、引き算を足し算に置き換えられることです。5−3を5+(−3)として計算できるため、CPUは加算の回路だけで減算もこなせます。また、2の補数表現では最上位ビットが1なら負の数、という見分け方も重要です(4ビットなら1101は負)。
共通テストでは「この数の2の補数を求めよ」「このビット列は10進でいくつか」という形で問われます。「反転して1を足す」という手順と、「足すと0になる」という意味の両方を押さえましょう。
選択肢の確認
1.○ 足すと桁あふれで0になる数で負数を表すのが2の補数。
2.× 絶対値表現は符号ビット+絶対値で表す別方式で、加算しても0にならない。
3.× 浮動小数点数は小数の表現方法で、負数表現の方式ではない。
4.× BCDは10進の各桁を4ビットで表す方式。
ここだけは覚えよう
2の補数=反転して1を足す — 引き算を足し算でこなすための負数表現。