演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符号付き加算(x1 + x2) するときに,全てのx1,x2の組合せにおいて加算結果がオーバフローしないものはどれか。ここで,|x| はxの絶対値を表し,負数は2の補数で表すものとする。
- |x1| + |x2| ≦ 32,768 の場合
- |x1| 及び |x2| がともに32,767未満の場合
- x1 × x2 > 0 の場合
- x1 と x2 の符号が異なる場合
解答
エ
解説
符号付きび16ビット整数(符号部:1ビット、整数部15ビット)の取りうる値は、-32,768~32,767 です。
- |x1| + |x2| ≦ 32,768 の場合
例えば、x1とx2がいずれも正で、|x1| + |x2| = 32,768 の場合は、x1 + x2 = 32,768 となり、オーバフローしてしまいます。 - |x1| 及び |x2| がともに32,767未満の場合
例えば、x1とx2がいずれも正で、x1 = x2 = 20,000 の場合は、x1 + x2 = 40,000 となり、オーバフローしてしまいます。 - x1 × x2 > 0 の場合
イ同様に、x1とx2がいずれも正で、x1 = x2 = 20,000 の場合は、x1 + x2 = 40,000 となり、オーバフローしてしまいます。 - x1 と x2 の符号が異なる場合
符号が異なるのであれば、和(x1 + x2)は、-32,768~32,767 の中に収まるため、オーバフローすることはありません。
参考情報
分野・分類
分野 | テクノロジ系 |
大分類 | コンピュータシステム |
中分類 | コンピュータ構成要素 |
小分類 | プロセッサ |
出題歴
- AP 令和3年度秋期 問8