演算レジスタが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ビット整数で表すことのできる範囲は-32,678〜32,677であり、2つの符号付16ビット整数x1 、x2 を加算した結果がオーバフローしないのは、x1 が正の数ならx2 が負の数、x1 が負の数ならx2 が正の数というx1 とx2 の符号が異なる場合(エ)である。
【キーワード】
・あふれ