計算問題の解き方・8/20
n進数小数の基数変換の解き方
16進・2進・8進の小数を10進の小数や分数に直す問題、10進の分数や割り算をn進小数に直す問題、そして変換すると有限小数になるか無限小数になるかを見分ける問題が出ます。どの形でも「小数点以下の桁の重みはn^-1, n^-2, …」を使えば解けます。
公開過去問での出題:本試験系 9 回・免除試験 22 回(観測値)
覚える式
- 0.d1d2d3…(n進) = d1×n^-1 + d2×n^-2 + d3×n^-3 + …
- 小数点以下k桁のn進小数 = (その k 桁をまとめて n 進の整数として読んだ値)÷ n^k
- 2進4桁 = 16進1桁、2進3桁 = 8進1桁
- 有限小数になる ⇔ 約分した分数の分母が基数の素因数だけでできている(2進・8進・16進なら分母が2のべき乗)
解き方の手順
- n進小数を10進に直すときは、小数点以下1桁目にn^-1、2桁目にn^-2…の重みを掛けて足します。16進のA〜Fは先に10〜15に置き換えます。
- 答えが分数のときは、小数部の桁をまとめてn進の整数として10進に直し、n^(桁数)で割ってから約分します。整数部がある場合は、整数部も分母をそろえて足します。
- 10進の分数や割り算をn進小数に直すときは、分母をnのべき乗(2進なら2^k、16進なら16^k)にそろえます。分子をn進で書き、小数点をk桁左へずらします。
- 選択肢が2のべき乗の和の形のときは、16進1桁を2進4桁(8進なら3桁)に展開します。立っているビットの位置を2^-1, 2^-2…と読みます。
- 有限小数か無限小数かを問われたら、各数を約分した分数にします。分母に5など基数に無い素因数が残れば無限小数、残らなければ有限小数です。
例題
16 進数の小数 0.248 を 10 進数の分数で表したものはどれか。
ア 31/32
イ 31/125
ウ 31/512
エ 73/512
出典:平成30年度 秋期 基本情報技術者試験 午前 問1(解き方は当サイト作成)
解き方と答えを見る
- 0.248(16) は小数点以下3桁なので、重みは 16^-1, 16^-2, 16^-3 です。
- 2×1/16 + 4×1/256 + 8×1/4096
- = 512/4096 + 64/4096 + 8/4096 = 584/4096(0x248 = 584 を 16^3 = 4096 で割った値と同じです)
- 584 と 4096 を 8 で割ると 73/512 です。73 は奇数なので、これ以上約分できません。
答え:73/512(エ)
ひっかけ
- 16進の0.248を10進の0.248と同じものと思い込み、248/1000 = 31/125 を選ばせる誤答があります(例題のイ)。基数が16なら、重みは1/10ではなく1/16です。
- 分母だけ16^3 = 4096 にして、分子の「248」を10進の248のまま使うと 248/4096 = 31/512 になります(例題のウ)。分子も16進の整数として 0x248 = 584 に直します。
- A〜Fを10〜15に置き換え忘れたり、桁の重みを1桁ずらしたりすると、近い値の選択肢に引っかかります。1桁目は必ずn^-1から始めます。
- 2進と16進を行き来するとき、小数部は小数点から右へ4桁ずつ区切り、足りない分は右に0を補います(整数部は左に補います)。区切る向きを間違えると、別の2のべき乗の和になります。
類題(手順を使って解く)
類題 1
16進の英字の桁を10進の値に置き換えてから16^-1を掛ける、手順1の基本が試されます。
16 進小数 0.C を 10 進小数に変換したものはどれか。
出典:令和5年度 基本情報技術者試験 科目A 公開問題 問1(問題文は IPA の公開問題。答えと解説はリンク先)
類題 2
10進の割り算を「分母が2のべき乗の分数」と見て、分子を2進で書き、小数点を何桁ずらすかを決める手順3が試されます。
10 進数の演算式 7÷32 の結果を 2 進数で表したものはどれか。
出典:平成31年度 春期 基本情報技術者試験 午前 問1(問題文は IPA の公開問題。答えと解説はリンク先)
類題 3
選択肢の10進小数をそれぞれ約分した分数にし、分母が2のべき乗かどうかを確かめる手順5が試されます。
次の 10 進小数のうち,2 進数で表すと無限小数になるものはどれか。
出典:平成26年度 春期 基本情報技術者試験 午前 問1(問題文は IPA の公開問題。答えと解説はリンク先)