本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和3年度 秋期 応用情報技術者試験問題と解説

問8

演算レジスタが16ビットのCPUで符号付き16ビット整数x1、x2を16ビット符号付き加算 (x1+x2) するときに、全ての x1、x2の組合せにおいて加算結果がオーバフローしないものはどれか。ここで、|x| は x の絶対値を表し、負数は2の補数で表すものとする。

ア |x1| + |x2| ≦ 32,768の場合

イ |x1|及び|x2|がともに 32,768未満の場合

ウ x1 × x2 > 0の場合

エ x1とx2の符号が異なる場合


正解


解説

オーバーフローは、扱える数値範囲の最大値を超えてしまうことである。
16ビットでは、符号付きの整数は先頭の1ビットが0の時は正の数、1の時は負の数を表し、
1000 0000 0000 0000(2)-32,768 から
0111 1111 1111 1111(2) = 215 − 1 = 32,767 までを表現できる。

ア x1 = 32,767、 x2 = 1 などの場合にオーバーフローする。

イ x1 = 32,767、 x2 = 1 などの場合にオーバーフローする。

ウ x1 = 32,767、 x2 = 1 などの場合にオーバーフローする。

エ 正しい。符号が異なる16ビット整数同士の加算ではオーバーフローしない。

問7 目次 問9