基本情報技術者平成15年春期 午前問3

午前問3

負数を2の補数で表すとき,8けたの2進数nに対し−nを求める式はどれか。ここで,+は加算を表し,OR,XOR は,それぞれビットごとの論理和,排他的論理和を表す。
  • (n OR 10000000)+00000001
  • (n OR 11111110)+11111111
  • (n XOR 10000000)+11111111
  • (n XOR 11111111)+00000001

分類

テクノロジ系 » 基礎理論 » 離散数学

正解

解説

2の補数とは,負数を表現する方法の1つです。ある正の数の2の補数を求めるには,すべてのビットを反転して1を加えます
この全ビットを反転するときに使われる論理演算が排他的論理和(XOR)です。排他的論理和には特徴があり、"XOR 1"(1との排他的論理和)の結果は演算元のビットが反転したもの(演算元が1なら0, 0なら1)、"XOR 0"(0との排他的論理和)の結果は演算元のビットそのままになります。
この特徴を生かして、あるビット列の中で特定の部分だけを反転させたい場合に、排他的論理和が用いられます。

つまり、−nを得るには、
  1. nの全ビットを反転する。(n XOR 11111111)
  2. 1の結果に1を加算する。(+00000001)
という演算を行うことになるため、正解は上記2つの演算を組み合わせた「(n XOR 11111111)+00000001」になります。
© 2010-2021 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop