SC情報処理安全確保支援士試験 午前Ⅰ
令和3年度秋期 情報処理安全確保支援士 午前Ⅰ 問4
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア7||*2| ミミ32、768の場合
- イ|z7|及び|x2|がともに32、767未満の場合ウーz7Xx2>0の場合
- ウ妨とx2の符号が異なる場合
- エ呈旋巡
解き方のヒントを見る
午前I 問04:符号付き加算でオーバフローする条件をつかもう
符号付きの数を足すときのオーバフローは、プラス同士・マイナス同士みたいに同じ向きの数を足したときに起こり得るよ。たとえば、同じ方向にどんどん進んでメーターの上限や下限を超えてしまうイメージだね。逆に、プラスとマイナスを足す場合は、お互いに打ち消し合う方向に働くから、表せる範囲を飛び出すオーバフローは起きないよ。
この問題で問われていること
符号付き加算では、どんな組合せのときにオーバフローが起こり得るのかを判断できるかがポイントだよ。
Signed Overflow
overflow occurs when adding two positives or two negatives beyond range
different signs -> no overflow
確認ポイント
- 絶対値和だけでは十分条件にならない。
- 異符号なら必ず安全です。
- 2 の補数表現でも同じ原理です。
正解と解説を見る
正解
エ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
これは不正解だよ。|x1|+|x2| が 32,768 以下でも、例えば 32,767 + 1 は 32,768 になって、上限の 32,767 を超えてしまう。財布に入る上限が32,767円なのに、32,768円を入れようとしてあふれる感じだね。
選択肢イ
これは不正解だよ。|x1| と |x2| がどちらも 32,767 未満でも、30,000 + 30,000 のように足した結果が 32,767 を超えることがある。小さめの荷物でも、2個まとめると箱に入りきらないことがある、というイメージだよ。
選択肢ウ
これは不正解だよ。x1×x2>0 は、x1 と x2 が同じ符号、つまり両方プラスか両方マイナスという意味だよ。同じ向きにどんどん進むと、プラス側なら 32,767 を超えたり、マイナス側なら -32,768 より小さくなったりする。だから、むしろオーバフローが起きやすい条件なんだ。
選択肢エ(正解)
これは正解だよ。16ビットの符号付き整数で表せる範囲は -32,768〜32,767 だから、同じ向きの数を足すと範囲を飛び出すことがある。でも、プラスとマイナスの数を足す場合は、家計で「収入」と「支出」を相殺するようなものなので、結果が極端に大きく外へ飛び出さないんだ。だからオーバフローしないよ。
出典:独立行政法人 情報処理推進機構(IPA)令和3年度秋期 情報処理安全確保支援士試験 午前Ⅰ 問4(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針