応用情報技術者試験 応用情報技術者試験 令和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件)

解説

応用情報技術者試験 令和3年度秋期 午前 問8「演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約72%です。

正解

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

正答率 71.8%(1,488人中 1,068人が正解)

問題の解説

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

応用情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

応用情報技術者試験 合格.dev を App Store でダウンロード