情報処理安全確保支援士試験 情報処理安全確保支援士試験 令和3年度秋期 午前Ⅰ 問4: 演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符号付き加算(x1+x2)するときに,全てのx1,x2の組合せにおいて加算結果がオ
←情報処理安全確保支援士試験 令和3年度秋期 午前Ⅰ
演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符号付き加算(x1+x2)するときに,全てのx1,x2の組合せにおいて加算結果がオーバフローしないものはどれか。ここで,|x|はxの絶対値を表し,負数はで表すものとする。
問題本文
演算レジスタが16ビットのCPUで符号付き16ビット整数x1,x2を16ビット符号付き加算(x1+x2)するときに,全てのx1,x2の組合せにおいて加算結果がオーバフローしないものはどれか。ここで,はxの絶対値を表し,負数は2の補数で表すものとする。
選択肢
- ア.≦32,768の場合
- イ.がともに32,767未満の場合
- ウ.x1×x2>0の場合
- エ.x1とx2の符号が異なる場合
解説
16ビット符号付き整数(2の補数)は-32768〜32767の範囲。同符号同士の加算は和が範囲外になりオーバフローしうるが、符号が異なる(一方が正、他方が負)場合は和の絶対値が必ず元の数より小さくなり、表現範囲を超えないため決してオーバフローしない。よって正解はエ。固定長演算の桁あふれは脆弱性の原因にもなる。
選択肢ごとの解説
- ア.絶対値の和が32768以下でも、例えば両方正で和が32768になると上限32767を超え誤り。
- イ.両方32767未満でも、正同士なら和が32767を超えオーバフローしうるので不適切。
- ウ.積が正は両者同符号を意味し、同符号の加算は範囲を超えうるためオーバフローし得る。
- エ.符号が異なれば和の絶対値は必ず減り表現範囲内に収まるため、これが正解。
情報処理安全確保支援士試験 令和3年度秋期 午前Ⅰ の過去問一覧へ戻る・問4