IPA過去問ドリル

平成21年度 春期 基本情報技術者試験 午前 問2

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

0000~4999のアドレスをもつハッシュ表があり,レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が55550のときのアドレスはどれか。ここで,基数変換法とは,キー値を11進数とみなし,10進数に変換した後,下4けたに対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。

出典:平成21年度 春期 基本情報技術者試験 午前 問2

正解:ア

解説

基数変換法では,まずキー値を指定された基数(ここでは11進数)とみなして10進数に変換し,その下4けたに0.5を掛けた値(小数点以下切捨て)をアドレスとします。キー値55550を11進数の数字列とみなして10進数に変換すると,5×11⁴+5×11³+5×11²+5×11+0=80520になります。下4けたの0520に0.5を掛けると260になるので,アドレスは0260です。

選択肢ごとの解説

  • 正しい。55550を11進数とみなして10進数に変換すると80520となり,下4けたの0520に0.5を掛けると260,すなわちアドレス0260が得られます。
  • 誤り。10進変換や0.5倍の計算を誤るとこのような値になりますが,正しい手順では得られません。
  • 誤り。下4けたの取り方や倍率の適用を誤った場合に生じる値です。
  • 誤り。10進数変換をせずにキー値をそのまま操作した場合などに生じる誤った値です。
基本情報技術者の過去問を演習モードで解く