問8令和3年度 秋期テクノロジ系
演算レジスタが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の符号が異なる場合
正解はエ
解説 本サイト独自(IPA公表のものではありません)
エ 符号付き加算のオーバフローは,同じ符号の値を加えた結果が表現可能な範囲を外れるときに起こる。符号が異なる二つの値の和は,両者の間の値になるので,符号付き16ビット整数で表せる範囲を外れない。
- ア 等号が成り立つ場合に両方が正数なら,加算結果は符号付き16ビット整数の上限を超えるので,全ての組合せで安全とはいえない。
- イ それぞれの絶対値が32,767未満でも,両方が同じ符号で大きな値なら,和が表現可能な範囲を外れることがある。
- ウ 積が正であることは二つの値が同じ符号であることを示す。同じ符号の大きな値同士の加算では,オーバフローが起こり得る。
この解説は間違っています
この解説は,別のモデルによるレビューを受けています。
出典:令和3年度 秋期 応用情報技術者試験 午前 問8