戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2018年 秋期 午前(科目A)01


問題文

16進数の小数0.248を10進数の分数で表したものはどれか。

選択肢

(正解)

🔒 解説は解答すると表示されます

16進小数の分数変換【午前解説】

正解の理由

16進小数の各桁は の係数で表されます。小数部が 0.248(16進)であれば
と表せます。これを通分して約分すると分数 になり、選択肢の中では がこの値に一致するため正解です。
具体的には次節の手順で示すとおりです。

解法ステップ

  1. 16進小数の各桁を基数の累乗で表す。
  2. 分母を共通にするために を用いる:


  3. 足し合わせて分子を求める:
  4. 約分する。584 と 4096 の最大公約数は 8 なので、
    。これが既約形。
したがって分数表現は 、選択肢では と一致します。

選択肢別の誤答解説

  • ア:
    値は (10進)で、 と大きく異なります。分母・分子ともに桁数や通分の過程が合っていません。
  • イ:
    値は (10進)に近いが、これは「見かけ上の小数列」をそのまま分数に読み替えた誤りです。16進小数と10進小数は基数が異なるため直接対応しません。
  • ウ:
    分母は正しい可能性があるが、分子は通分して得られる 73 ではなく 31 になっており算出ミスです。共通分母を取ったときの分子の合算を誤っています。
  • :
    上記の手順で求まる既約分数と一致します。

よくある誤解

  1. 「16進小数の小数列をそのまま10進小数と見なす」
    たとえば 0.248 をそのまま 0.248(10進)として扱うと誤答になります。各桁は16進の位取りで評価する必要があります。
  2. 「16進で有限小数なら10進では無限小数になる」と思う誤り
    16進の有限小数は分母が の形になり、約分後の分母は 2 のみの冪となります。10進(基数 10 = 2×5)で有限小数となる条件は分母の素因数が 2 と 5 のみであることなので、16進の有限小数は必ず10進でも有限小数になります。
  3. 通分・約分の見落とし
    共通分母を取った後に最大公約数で約分する工程を省くと、既約形に到達できず選択肢と合致しないことがあります。

補足コラム

基数変換と小数の有限性についての一般法則:
  • 基数 の有限小数は分数で分母が の形(約分後は の素因数だけを持つ)になります。
  • 別の基数 で同じ数が有限小数になるための必要十分条件は、約分後の分母の素因数がすべて の素因数に含まれることです。例:16進(素因数は 2)で有限なら、10進(素因数は 2 と 5)でも有限になります。
簡単な例:
  • (10進でも有限)
プログラムでの確認(参考):下のスニペットは16進小数"0.248"を分数に変換します。
from fractions import Fraction

s = "248"              # 小数部の文字列("0." の後)
num = int(s, 16)       # 16進として解釈した分子
den = 16 ** len(s)     # 分母
fr = Fraction(num, den)
print(fr)              # Fraction(73, 512)

FAQ

Q: なぜ共通分母に を使ったのですか?
A: 小数部の桁数が3桁なので、各項を整数分子に変えるために (最大の分母)で通分すると計算が簡単になります。
Q: 約分できる因数はどう見つけるべきですか?
A: 分子と分母の両方を小さい素数(2,3,5,7,...)で順に割っていけば見つかります。今回は両者とも 8(=2^3)で割れました。
Q: 16進で有限だから必ず10進でも有限になるのですか?
A: はい。16は なので約分後の分母は 2 の冪だけになります。10進の基数は なので分母が2の冪であれば10進でも有限小数になります。

関連キーワード: 16進数、基数変換、有限小数、分数表示、通分、約分、十進表記、小数展開、分母の素因数分解
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について