基本情報技術者 2009年 秋期 午前(科目A) 問02
問題文
実数αをと表す浮動小数点表示に関する記述として、適切なものはどれか。
選択肢
ア:fを仮数, eを指数, rを基数という。(正解)
イ:fを基数, eを仮数, rを指数という。
ウ:fを基数, eを指数, rを仮数という。
エ:fを指数, eを基数, rを仮数という。
浮動小数点表示 における f, e, r の意味【午前2 解説】
要点まとめ
- 結論:浮動小数点表現 では f が仮数、e が指数、r が基数であると定義されます。
- 根拠:仮数は数値の有効桁部分、指数は基数のべき乗で桁位置を示すという数学的定義に基づきます。
- 差がつくポイント:基数 r は実装で 2(バイナリ)や 10(十進)など、仮数は通常正規化されて有効桁数で扱われる点を押さえてください。
正解の理由
選択肢の中で正しいのは、仮数(mantissa または significand)、指数(exponent)、基数(radix/base)という用語の対応が明確に示されたものです。形式 において
- f は数値の有効な桁を表す「仮数(仮数部)」、
- e はその仮数に対して r を何乗するかを示す「指数(指数部)」、
- r は位取りの基準となる「基数( radix / base )」 を意味します。したがって選択肢の中ではアが正しい対応です。たとえば なら f=3.14, r=10, e=2 です。
よくある誤解
仮数を「小数点以下の部分」だと誤認することがありますが、仮数は小数点の有無に関係なく有効桁全体を指します。基数と仮数を取り違える人も多いので用語の定義を暗記してください。
解法ステップ
- 一般形 が示す各記号の意味を思い出す(f=仮数, e=指数, r=基数)。
- 「仮数」は数値の有効桁、「指数」は位置(桁シフト)を与えるべきものと確認する。
- 各選択肢の語と定義が一致するか比較する。
- 実例( や バイナリ )で当てはめて検証する。
選択肢別の誤答解説
- ア: f を仮数、e を指数、r を基数と正しく対応しています。これが正答です。
- イ: f を基数、e を仮数、r を指数とし語順が完全に入れ替わっており誤りです。
- ウ: f を基数と誤認し、r を仮数とするのは用語の意味と逆なので誤りです。
- エ: f を指数、e を基数、r を仮数とし三者とも誤って入れ替わっているため明らかに誤りです。
補足コラム
- IEEE 754 浮動小数点は多くの場合基数 r=2 のバイナリ表現を採用します。正規化された二進浮動小数点では仮数 の範囲は (隠れ 1 ビットを利用)となります。
- 指数は符号付きではなくバイアス付きで格納されることが多く、これにより正負の指数を扱います(例:単精度のバイアスは 127)。
- 例(10進): → f=3.14, r=10, e=2。例(2進): → f=1.01_2, r=2, e=3。
- 簡単な Python 例(小数を基数 10 表現で分解するサンプル)
def decompose_decimal(x):
import math
if x == 0:
return 0, 10, 0
e = int(math.floor(math.log10(abs(x))))
f = x / (10**e)
return f, 10, e
print(decompose_decimal(314.0)) # -> (3.14, 10, 2)
FAQ
Q: 仮数は必ず小数点以下の部分だけですか?
A: いいえ。仮数は数値の有効桁全体を指し、小数点の位置に依存しません。正規化では のように表されます。
A: いいえ。仮数は数値の有効桁全体を指し、小数点の位置に依存しません。正規化では のように表されます。
Q: 基数 r は実装によって変わりますか?
A: はい。多くのシステムは r=2(バイナリ)を使いますが、十進浮動小数点では r=10 を用いる実装もあります。
A: はい。多くのシステムは r=2(バイナリ)を使いますが、十進浮動小数点では r=10 を用いる実装もあります。
関連キーワード: 浮動小数点、仮数、指数、基数、radix、mantissa、significand、exponent、IEEE754、正規化、隠れビット、バイアス、オーバーフロー、アンダーフロー、基数2、基数10

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

