問題本文
負数を2の補数で表すとき,8ビットの2進正整数nに対し−nを求める式はどれか。ここで,+は加算を表し,ORはビットごとの論理和,XORはビットごとの排他的論理和を表す。
選択肢
- ア.(n OR 10000000) + 00000001
- イ.(n OR 11111110) + 11111111
- ウ.(n XOR 10000000) + 11111111
- エ.(n XOR 11111111) + 00000001
正解
エ. (n XOR 11111111) + 00000001
解説
2の補数で −n を求める式は「ビット反転して 1 を加える」操作です。n の各ビット反転 = n XOR 11111111、それに 00000001 を加える。エが正解。
選択肢ごとの解説
- ア.n OR 10000000 は最上位ビットを立てるだけで、ビット全体の反転ではないため −n になりません。
- イ.n OR 11111110 では下位7ビットがそのまま残ってしまい、補数計算になりません。
- ウ.n XOR 10000000 は最上位ビットだけを反転するもので、全ビット反転ではありません。
- エ.n XOR 11111111 で全ビットを反転し、+1 で2の補数を完成。−n の正しい式で正解です。
基本情報技術者試験 令和4年度 科目A サンプル問題 の過去問一覧へ戻る・問1