次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型の値xについて、xに加算すると00000000になる値を返す。8ビット型の加算は、値を符号なし2進数とみなしたときの加算とし、桁あふれが発生したときのあふれた桁は無視する。演算子∧、∨、▽は、それぞれビット単位の論理積、論理和、排他的論理和を表す。
```
〔プログラム〕
○8ビット型: complement(8ビット型: x)
8ビット型: y
y ←
y ← y + 00000001
return y
```
選択肢
- アx ∧ 01111111
- イx ∧ 11111111
- ウx ∨ 01111111
- エx ∨ 11111111
- オx ▽ 01111111
- カx ▽ 11111111
正解と解説
正解:カ x ▽ 11111111
加算して0になる値とは2の補数のことで、求め方は「全ビットを反転して1を加える」です。プログラムは最後に 00000001 を加えているので、空欄では x の全ビット反転を作ればよいことになります。排他的論理和は 1 との演算でビットが反転するので、11111111 との排他的論理和が全ビット反転にあたります。よって x ▽ 11111111 が正解です。
選択肢ごとの解説
- ア上位ビットを0にするマスク処理で、反転にはなりません。
- イ全ビット1との論理積は x のままで、何も変化しません。
- ウ下位7ビットが1に固定されるだけで、反転ではありません。
- エ全ビット1との論理和は常に 11111111 となり、x の情報が失われます。
- オ下位7ビットだけが反転し、最上位ビットが元のまま残ります。
- カ正解。全ビット1との排他的論理和で全ビットが反転し、+1 で2の補数になります。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。 関数function1が受け取る引数…2025年度 公開問題 科目B 問1
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。