演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符号付き加算(x1+x2)するときに,全てのx1,x2の組合せにおいて加算結果がオーバフローしないものはどれか。ここで,はxの絶対値を表し,負数は2の補数で表すものとする。
エ. x1とx2の符号が異なる場合
16ビットの2の補数(符号付き整数)で表せる範囲は −32,768〜+32,767 であり、加算結果がこの範囲を超えるとオーバフローする。オーバフローは「同符号どうしの加算(正+正 が +32,767 を超える、負+負 が −32,768 を下回る)」でのみ発生する点が核心である。x1 と x2 の符号が異なる場合、和の絶対値は元の数の絶対値以下になり、必ず範囲内に収まるためオーバフローは起こらない。したがって正解はエ。
ap-2021r03a-a の過去問一覧へ戻る・問8