科目B
令和8年度 基本情報技術者試験 科目B 公開問題 問2
次のプログラム中の に入れる正しい答えを,解答群の中から選べ。
関数 complement は,引数として渡された 8 ビット型の値 x について,x に加算すると 00000000 になる値を返す。8 ビット型の加算は,値を符号なし 2 進数とみなしたときの加算とし,桁あふれが発生したときのあふれた桁は無視する。演算子∧,∨,▽は,それぞれビット単位の論理積,論理和,排他的論理和を表す。
〔プログラム〕
○8ビット型: complement(8ビット型: x)
8ビット型: y
y ←
y ← y + 00000001
return y
答えを選ぶ
出典:令和8年度 基本情報技術者試験 科目B 公開問題 問2(問題文は IPA の公開問題。図・数式・下線などはテキストに直して掲載。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:カ
覚える知識
全ビット反転操作(XOR FF)
11111111 との XOR は全ビットを反転する(1の補数を作る)。1の補数に 1 を足すと2の補数になり、元の値に足すと桁あふれして 0 になる。
この問題で必要なこと
x に足すと 00000000(桁あふれは無視)になる値は、x の2の補数=全ビットを反転して1を足した値。プログラムでは2行目で1を足しているので、空欄は全ビット反転になる。11111111 との排他的論理和で全ビットが反転するので、正解はカ。
ひっかけ
論理積(ア・イ)は値をそのまま残すか上位ビットを消すだけで、反転しない。論理和(ウ・エ)は1を立てるだけ。オの 01111111 との XOR は下位7ビットしか反転せず、最上位ビットが残ってしまう。