符号付き整数のオーバフロー条件

正解は エ です。 16ビットの2の補数で表せる範囲は −32,768〜32,767 です。全ての組合せでこの範囲に収まるかを、反例を探して確かめます。 選択肢 反例・理由 オーバフロー ア |x1|+|x2|≦32,768 16,384+16,384=32,768(上限超え) する場合あり イ ともに 32,767 未満 32,766+32,766=65,532 する場合あり ウ x1×x2>0(同符号) 上と同じく正どうし・負どうしで超える する場合あり エ 符号が異なる 和は x1 と x2 の間の値になる しない 正と負を足すと、結果の絶対値は大きい方の絶対値を超えないため、和は必ず x1 と x2 の間に入り、表現できる範囲からはみ出しません。

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

出典令和3年度 秋期 高度情報処理技術者試験 午前Ⅰ 問4
ア
∣x1∣+∣x2∣≤32,768|x_1|+|x_2|\le 32,768 の場合
イ
∣x1∣|x_1| 及び ∣x2∣|x_2| がともに32,767 未満の場合
ウ
x1×x2>0x_1 \times x_2>0 の場合
エ
x1x_1 と x2x_2 の符号が異なる場合