問題
演算レジスタが 16 ビットの CPU で符号付き 16 ビット整数 x1、x2 を 16 ビット符号付き加算(x1+x2)するときに、全ての x1、x2 の組合せにおいて加算結果がオーバフローしないものはどれか。ここで、|x| は x の絶対値を表し、負数は 2 の補数で表すものとする。
選択肢
- 1|x1|+|x2|≦32,768 の場合
- 2|x1| 及び |x2| がともに 32,767 未満の場合
- 3x1×x2>0 の場合
- 4x1 と x2 の符号が異なる場合
正解
4. x1 と x2 の符号が異なる場合
詳しい解説を見る解説を閉じる
解説
符号付き 16 ビット整数の表現範囲は −32,768〜+32,767 である。オーバフローは加算結果がこの範囲を超えるときに発生するが、x1 と x2 の符号が異なる場合は加算結果の絶対値が両者の絶対値より小さくなるため、必ず表現範囲内に収まりオーバフローしない。アやイは正の値同士で範囲を超えうる、ウは同符号同士で範囲を超えうるため適切でない。よってエが正解。(出典: 令和3年度 秋期 応用情報技術者試験 午前 問8)
一問一答
全400問を繰り返し学習