CO-K21情報Ⅰ 対策問題

コンピュータとプログラミング用語

コンピュータ内部で負の整数を表すときによく使われる、「ある数を足すと桁あふれして0になる数」で負数を表現する方法を何というか。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

2の補数(負の数の表現) を問う問題です。「反転して1を足す」という作り方まで覚えましょう。

解説

コンピュータには「マイナス記号」がないため、負の数もビット列で表す工夫が必要です。その代表が2の補数で、「ある数に足すと桁あふれして0になる数」を負数として使う方法です。

作り方は簡単で、「各ビットを反転する(0と1を入れ替える)→1を足す」の2手順です。4ビットの例で確かめます。

  1. 3 = 0011
  2. 反転 → 1100
  3. 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を足す — 引き算を足し算でこなすための負数表現。

関連問題

CO-K20CO-K22