HOME»オリジナル模擬試験3»問1
オリジナル模擬試験3 問1
問1
負数を2の補数で表すとき,8けたの2進数nに対し-nを求める式はどれか。ここで,+は加算を表し,OR,XOR は,それぞれビットごとの論理和,排他的論理和を表す。
- (n OR 10000000)+00000001
- (n OR 11111110)+11111111
- (n XOR 10000000)+11111111
- (n XOR 11111111)+00000001
- [出典]
- 基本情報技術者 H15春期 問3
分類
テクノロジ系 » 基礎理論 » 離散数学
正解
エ
解説
2の補数とは,負数を表現する方法の1つです。ある正の数の2の補数を求めるには,すべてのビットを反転して1を加えます。
この全ビットを反転するときに使われる論理演算が排他的論理和(XOR)です。排他的論理和には特徴があり、"XOR 1"(1との排他的論理和)の結果は演算元のビットが反転したもの(演算元が1なら0, 0なら1)、"XOR 0"(0との排他的論理和)の結果は演算元のビットそのままになります。
この特徴を生かして、あるビット列の中で特定の部分だけを反転させたい場合に、排他的論理和が用いられます。
つまり、-nを得るには、
この全ビットを反転するときに使われる論理演算が排他的論理和(XOR)です。排他的論理和には特徴があり、"XOR 1"(1との排他的論理和)の結果は演算元のビットが反転したもの(演算元が1なら0, 0なら1)、"XOR 0"(0との排他的論理和)の結果は演算元のビットそのままになります。
この特徴を生かして、あるビット列の中で特定の部分だけを反転させたい場合に、排他的論理和が用いられます。
つまり、-nを得るには、
- nの全ビットを反転する。(n XOR 11111111)
- 1の結果に1を加算する。(+00000001)