令和3年度秋期 問8 / 80

令和3年度 秋期 応用情報技術者試験 午前 問8

演算レジスタが16ビットのCPUで符号付き16ビット整数x₁、x₂を16ビット符号付き加算(x₁ + x₂)するときに、全てのx₁、x₂の組合せにおいて加算結果がオーバーフローしないものはどれか。ここで、|x|はxの絶対値を表し、負数は2の補数で表すものとする。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:エ

  • ア: |x₁| + |x₂| ≦ 32,768の場合
    誤り。16ビット符号付き整数の範囲は-32,768 から 32,767です。|x₁| + |x₂|が32,768ではオーバーフローする可能性があります。例えばx₁ = 32,767, x₂ = 1ではオーバーフローが発生します。

  • イ: |x₁|及び|x₂|がともに32,767未満の場合
    誤り。|x₁|および|x₂|が32,767未満であっても、x₁ = 32,766, x₂ = 32,766のように正の数が加算される場合にはオーバーフローが発生します。

  • ウ: x₁ × x₂ > 0の場合
    誤り。x₁とx₂がともに正または負である場合、加算によって絶対値が増大しオーバーフローする可能性があります。

  • エ: x₁とx₂の符号が異なる場合
    正しい。符号が異なる場合、一方が正、他方が負のため、加算結果が絶対値の小さい方の符号に引きずられ、オーバーフローしにくくなります。これは符号付き整数の加算でオーバーフローを回避する最も確実な条件です。


答え

エ: x₁とx₂の符号が異なる場合

出典:令和3年度 秋期 応用情報技術者試験 午前 問8

令和3年度秋期の他の問題