応用情報技術者試験 応用情報技術者試験 令和3年度秋期 午前8: 演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符号付き加算(x1+x2)するときに,全てのx1,x2の組合せにおいて加算結果がオ

応用情報技術者試験 令和3年度秋期 午前
Q 88 / 80
演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符号付き加算(x1+x2)するときに,全てのx1,x2の組合せにおいて加算結果がオーバフローしないものはどれか。ここで,|x|はxの絶対値を表し,負数はで表すものとする。
この問の正解率:71.77%(1,488件)

問題本文

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

選択肢

  • .≦32,768の場合
  • .がともに32,767未満の場合
  • .x1×x20の場合
  • .x1とx2の符号が異なる場合

正解

. x1とx2の符号が異なる場合

解説

16ビットの2の補数(符号付き整数)で表せる範囲は −32,768〜+32,767 であり、加算結果がこの範囲を超えるとオーバフローする。オーバフローは「同符号どうしの加算(正+正 が +32,767 を超える、負+負 が −32,768 を下回る)」でのみ発生する点が核心である。x1 と x2 の符号が異なる場合、和の絶対値は元の数の絶対値以下になり、必ず範囲内に収まるためオーバフローは起こらない。したがって正解はエ。

選択肢ごとの解説

  • .例えば x1=x2=16,384 とすると絶対値の和は 32,768 で条件を満たすが、和 32,768 は +32,767 を超えるためオーバフローする。条件を満たしてもオーバフローしうるので誤り。
  • .x1=x2=32,766(ともに32,767未満)でも和は 65,532 となり +32,767 を大きく超えてオーバフローするため誤り。
  • .x1×x20 は両者が同符号(正・正または負・負)であることを意味し、同符号の加算は絶対値が大きいとオーバフローしうるため、オーバフローしない保証にはならない。
  • .正しい。符号が異なれば和の絶対値は大きい方の絶対値以下に収まり、−32,768〜+32,767 の範囲を必ず満たすのでオーバフローは発生しない。

応用情報技術者試験 令和3年度秋期 午前過去問一覧へ戻る・問8