第1種情報処理技術者試験 1996年度 = 平成8年度 午前 問1

 nビットの2進整数において、負数を表現する次の三つの方法を考える。
  (1) 符号と絶対値
  (2) 1の補数
  (3) 2の補数
 いずれも正負の別を表現するために先頭の1ビットを使用するものとして、次の説明のうちで正しいものを二つ選べ。

ア 1の補数を求めるためには、すべてのビットが1であるn+1ビットの2進数から、元の数を引けばよい。
イ 2の補数を求めるためには、まず元の数の1の補数を求め、その最下位ビットに1を加えればよい。
ウ n=2のときは、符号と絶対値を用いた表現と、1の補数を用いた表現は一致する。
エ 表現できる値の範囲が最も広いのは、符号と絶対値を用いた方法である。
オ 符号と絶対値を用いた表現及び1の補数を用いた表現では、+0と-0との二つの0がある。

解答

イ・オ

解説

 それぞれの表現において、元の正の数から、その符号を反転した負数の表現を求める方法は、以下のようになります。

(1) 符号と絶対値
 最上位ビットを0から1にします。

(2) 1の補数
 すべてのビットを反転(0を1にして、1を0にする)します。

(3) 2の補数
 すべてのビットを反転(0を1にして、1を0にする)して1を加えます。

   正の数      符号と絶対値      1の補数       2の補数     ┏━┯━┯━┯━┓ ┏━┯━┯━┯━┓ ┏━┯━┯━┯━┓ ┏━┯━┯━┯━┓  ┃0│1│1│0┃ ┃1│1│1│0┃ ┃1│0│0│1┃ ┃1│0│1│0┃  ┗━┷━┷━┷━┛ ┗━┷━┷━┷━┛ ┗━┷━┷━┷━┛ ┗━┷━┷━┷━┛ 

 (1)と(3)は+0と-0の2種類の表現があるため、nビットで表現できる数値は、以下のようになります。
  (1)・(3)  … -2n-1 + 1 ~ 2n-1 - 1
  (2)  … -2n-1 ~ 2n-1 - 1

 1の補数を求めるためには、すべてのビットが1であるnビットの2進数から、元の数を引きます。

 2の補数を求めるためには、まず元の数の1の補数を求め、その最下位ビットに1を加えます。

 nがいくつであっても、符号と絶対値を用いた表現と、1の補数を用いた表現は一致しません

 表現できる値の範囲が最も広いのは、2の補数を用いた方法である。

 符号と絶対値を用いた表現及び1の補数を用いた表現では、+0と-0との二つの0があります。


BohYoh.comトップページへ