科目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 の公開問題。図・数式・下線などはテキストに直して掲載。解説は当サイト作成)

科目Bの解き方と全問の一覧

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:カ

覚える知識

全ビット反転操作(XOR FF)

11111111 との XOR は全ビットを反転する(1の補数を作る)。1の補数に 1 を足すと2の補数になり、元の値に足すと桁あふれして 0 になる。

この問題で必要なこと

x に足すと 00000000(桁あふれは無視)になる値は、x の2の補数=全ビットを反転して1を足した値。プログラムでは2行目で1を足しているので、空欄は全ビット反転になる。11111111 との排他的論理和で全ビットが反転するので、正解はカ。

ひっかけ

論理積(ア・イ)は値をそのまま残すか上位ビットを消すだけで、反転しない。論理和(ウ・エ)は1を立てるだけ。オの 01111111 との XOR は下位7ビットしか反転せず、最上位ビットが残ってしまう。

この知識を科目Aの過去問で覚える レッスン「ビットマスクとXORを使ったビット操作」で学ぶ

同じ知識の過去問