基本情報技術者 2009年 秋期 午前(科目A) 問02
問題文
実数αをと表す浮動小数点表示に関する記述として、適切なものはどれか。
選択肢
ア:fを仮数, eを指数, rを基数という。(正解)
イ:fを基数, eを仮数, rを指数という。
ウ:fを基数, eを指数, rを仮数という。
エ:fを指数, eを基数, rを仮数という。
🔒 解説は解答すると表示されます
浮動小数点表示の構成要素【午前解説】
正解の理由
選択肢の中で正しいのは、仮数(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

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

