16ビット符号付き加算において加算結果がオーバフローしない条件

正解は エ です。 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+x2x_1 + x_2) するときに,全ての x1x_1,x2x_2 の組合せにおいて加算結果がオーバフローしないものはどれか。ここで,∣x∣|x| は xx の絶対値を表し,負数は 2 の補数で表すものとする。

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