サンプル問題 [科目A]問1

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
負数を2の補数で表すとき,8ビットの2進正数nに対し-nを求める式はどれか。ここで,+は加算を表し,ORはビットごとの論理和,XORはビットごとの排他的論理和を表す。

  • (n OR 10000000)+00000001
  • (n OR 11111110)+11111111
  • (n XOR 10000000)+11111111
  • (n XOR 11111111)+00000001
正解 問題へ
分野:テクノロジ系
中分類:基礎理論
小分類:離散数学
解説
2の補数とは、負数を表現する方法の一つです。ある正数に対応する2の補数に求めるには、すべてのビットを反転して1を加えます

この全ビットを反転するときに使われる論理演算が排他的論理和(XOR)です。排他的論理和には次のような特徴があります。
  • 「XOR 0(0との排他的論理和)」の結果は元のビットそのままとなる
  • 「XOR 1(1との排他的論理和)」の結果は元のビットを反転したビットとなる(0→1、1→0)
01.png
この性質を生かして、排他的論理和はあるビット列中で特定の部分だけを反転させるときに用いられます。

2進正数nから2の補数表現の-nを得るには、
  1. nの全ビットを反転する ⇒ n XOR 11111111
  2. ①の結果に1を加算する ⇒ +00000001
という演算を行うことになるため、上記2つの演算を組み合わせた「(n XOR 11111111)+00000001」が正しい式となります。

この問題の出題歴


Pagetop