基本情報技術者 2018年 秋期 午前(科目A) 問01
問題文
16進数の小数0.248を10進数の分数で表したものはどれか。
選択肢
ア:
イ:
ウ:
エ:(正解)
16進数の小数0.248を10進数の分数で表したものはどれか。【午前2 解説】
要点まとめ
- 結論: 正解は エ: 。16進小数 0.248₁₆ を 10進の分数に直すと になります。
- 根拠: 16進小数は各桁が に対応し、 を通分して約分した結果です。
- 差がつくポイント: 分母は ()で通分し、約分は2の冪で簡単にできる点を素早く見抜くこと。
正解の理由
16進数の小数部はそれぞれの桁が16の負のべき乗に対応します。
具体的に です。これを分数に直すと となり、共通分母 に通分すると分子は です。
よって元の値は で、 より約分して となります。従って正解は エ: です。
具体的に です。これを分数に直すと となり、共通分母 に通分すると分子は です。
よって元の値は で、 より約分して となります。従って正解は エ: です。
よくある誤解
- 16進の小数を単に小数点以下の数字列をそのまま10進小数と誤解する(例:0.248 を 0.248 と扱うミス)。
- 桁ごとの重みを16の負乗でなく10の負乗や他の基数で考えてしまう(基数を間違える)。
- 通分・約分を省略して のまま答える、または約分の際の最大公約数を見落とすミス。
解法ステップ
- 各桁の重みを確認:16進小数の桁は左から 。
- 桁ごとに積を計算:。
- 分数表現にする:。
- 共通分母 に通分し分子を足す:。
- 約分して最簡分数にする:。
(代替法)各桁を順に の分数として扱うのが最短で確実です。
選択肢別の誤答解説
- ア:
値は (10進)で、題意の値とは大きく異なります。16進分解とは無関係な値。 - イ:
値は (10進)に近いが、これは「十進小数0.248」を分数にした結果であり、16進の 0.248₁₆ とは別物です。基数を混同した典型ミス。 - ウ:
この分数は で、0.248₁₆ の正しい値 と異なります。通分や桁の重みの計算ミスで出やすい値。 - エ:
正しく通分して約分した結果で、上の手順どおりに計算すると得られる唯一の正解です。
補足コラム
- 覚えておくと便利な性質:16進の分母は常に なので、約分後の分母は2の冪になります。16進小数は2進分数と親和性が高く、ビット単位での扱いが容易です。
- 実務的には、個々の桁を足す方法か、文字列として読み取ってプログラムで Fraction ライブラリを使う方法が確実です。
コード例(16進小数文字列を分数に変換する Python)
from fractions import Fraction
def hex_frac_to_fraction(s): # s like "0.248"
assert s.startswith("0.")
digits = s[2:]
numerator = 0
denom = 16 ** len(digits)
for i, ch in enumerate(digits):
val = int(ch, 16)
numerator = numerator * 16 + val
return Fraction(numerator, denom)
print(hex_frac_to_fraction("0.248")) # -> Fraction(73, 512)
FAQ
Q1: なぜ分母は 16^3 を使うのですか?
A1: 小数部が3桁(2,4,8)なので最小公倍数として で通分できます。各桁は に対応します。
A1: 小数部が3桁(2,4,8)なので最小公倍数として で通分できます。各桁は に対応します。
Q2: 16進小数は必ず有限小数になりますか?
A2: 16は2の冪なので、基数10での有限小数とは無関係です。16進では有限桁なら必ず有限ですが、10進で表すと有限とは限りません(ただし分母が2の冪に約分されるため、10進の有限小数になるには分母が2と5の冪のみである必要があります)。
A2: 16は2の冪なので、基数10での有限小数とは無関係です。16進では有限桁なら必ず有限ですが、10進で表すと有限とは限りません(ただし分母が2の冪に約分されるため、10進の有限小数になるには分母が2と5の冪のみである必要があります)。
Q3: 長い16進小数の変換で効率的なやり方は?
A3: 通分・約分の方法が確実で速いです。プログラムでは分数ライブラリを用いるか、繰り返し16倍して整数部分を取り出す方法(乗算法)も使えます。
A3: 通分・約分の方法が確実で速いです。プログラムでは分数ライブラリを用いるか、繰り返し16倍して整数部分を取り出す方法(乗算法)も使えます。
関連キーワード: 16進数、基数変換、16進小数、分数表示、約分、通分、2の冪、桁位置法則

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

