IPA過去問ドリル

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

テクノロジ/コンピュータ構成要素

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

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

正解:エ

解説

16 ビット符号付き整数の表現範囲は −32,768〜+32,767 です。オーバフローは正の数同士又は負の数同士の加算で範囲を超えたときに発生します。x1 と x2 の符号が異なる場合,加算結果の絶対値は必ず両者の絶対値の大きい方以下になるため,表現範囲を超えることはなく,オーバフローは発生しません。

選択肢ごとの解説

  • 誤り。例えば x1=32,767,x2=1 は |x1|+|x2|=32,768 で条件を満たしますが,加算結果 32,768 は正の最大値 32,767 を超えるためオーバフローします。
  • 誤り。例えば x1=x2=20,000 はともに 32,767 未満ですが,和は 40,000 となりオーバフローします。
  • 誤り。x1×x2>0 は両者が同符号であることを意味し,同符号同士の加算はまさにオーバフローが発生し得る場合です。
  • 正しい。符号が異なる2数の和は,絶対値が大きい方の数の絶対値を超えないため,オーバフローは発生しません。
応用情報技術者の過去問を演習モードで解く