修了試験 2012-06-24実施分 基本情報技術者試験 問2
0000~4999のアドレスをもつハッシュ表があり,レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。 キー値が55550のときのアドレスはどれか。 ここで,基数変換法とは,キー値を11進数とみなし,10進数に変換した後,下4桁に対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。
正答1
解説
正解は1です。 ハッシュ表のアドレスを基数変換法で求める問題です。 キー値を11進数とみなして10進数に直し、下4桁に0.5を掛けて小数点以下を切り捨てます。 【計算】 キー値55550の各桁を11進数の5、5、5、5、0とみなします。 10進数の値は、5×11^4+5×11^3+5×11^2+5×11+0です。 11^4=14641、11^3=1331、11^2=121なので、73205+6655+605+55+0となります。 合計は80520です。 下4桁は0520です。 0520×0.5=260となり、4桁で表すと0260です。 【選択肢別解説】 1:○ 計算結果の0260と一致します。 2:× 2525は計算結果と一致しません。 正しいアドレスは0260です。 3:× 2775は55550を10進数のまま扱い、5550×0.5を計算した値です。 11進数とみなす手順が抜けています。 4:× 4405は計算結果と一致しません。 正しいアドレスは0260です。 【ポイント】 基数変換法は、キー値を別の基数の数とみなして変換し、アドレスを分散させるハッシュ関数です。 n進数から10進数への変換は、各桁に基数のべき乗を掛けて足し合わせます。まとめて解く
修了試験 2012-06-24実施分を通しで解く(80問)→