IPA過去問ドリル

平成22年度 春期 応用情報技術者試験 午前 問5

テクノロジ/アルゴリズム

流れ図は,シフト演算と加算の繰返しによって2進整数の乗算を行う手順を表したものである。この流れ図中のa,bの組合せとして,適切なものはどれか。ここで,乗数と被乗数は符号なしの16ビットで表される。X,Y,Zは32ビットのレジスタであり,けた送りには論理シフトを用いる。最下位ビットを第0ビットと記す。

平成22年度 春期 応用情報技術者試験 午前 問5の図

出典:平成22年度 春期 応用情報技術者試験 午前 問5

正解:ア

解説

この流れ図は,乗数Yの最下位ビット(第0ビット)を調べて1ならば被乗数Xを積Zに加算し,その後Xを1ビット左シフトしてけたを上げ,Yを1ビット右シフトして次に調べるビットを最下位に移すという操作を,iが16になるまで繰り返す筆算式の乗算アルゴリズムです。

選択肢ごとの解説

  • 正しい。Yの第0ビットを判定し,Xを左シフトしてけたを上げ,Yを右シフトして次のビットを最下位に送るという手順は,2進数の筆算による乗算の仕組みと一致します。
  • 誤り。Xを右シフト,Yを左シフトすると,けたの重みが逆方向にずれてしまい,正しい積が得られません。
  • 誤り。Yの第15ビットは最上位ビットであり,これを先に判定すると乗数の下位ビットから処理する手順と矛盾します。
  • 誤り。aとbの判定・シフト方向がいずれも誤っており,正しい乗算結果を得られません。
応用情報技術者の過去問を演習モードで解く