応用情報技術者 2010年 春期 午前2 問02
問題文
図に示す16ビットの浮動小数点形式において、10進数 0.25 を正規化した表現はどれか。ここで、正規化は仮数部の最上位けたが1になるように指数部と仮数部を調節する操作とする。


選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
浮動小数点の正規化【午前2解説】
正解の理由
10進数 0.25 は2進数で です。設問の正規化ルールは「仮数部の最上位桁が1になるように調整する」ことなので、仮数を (=0.5)とし、指数をそれに合わせて にすれば元の値に戻ります。
4ビットの指数は2の補数表現が用いられるため、 は 1111(4ビット)で表されます。符号は正の数なので s = 0。したがってビット列は s=0、e=1111()、f=先頭が1で残り0(正規化された仮数)となり、選択肢の ウ が該当します。
4ビットの指数は2の補数表現が用いられるため、 は 1111(4ビット)で表されます。符号は正の数なので s = 0。したがってビット列は s=0、e=1111()、f=先頭が1で残り0(正規化された仮数)となり、選択肢の ウ が該当します。
解法ステップ
- 10進数 0.25 を2進数へ変換する。
0.25 = = 。 - 正規化の条件(仮数部の最上位桁が1)を満たすように仮数と指数を調整する。
なので、正規化された仮数は (値は0.5)、指数は 。 - 指数を4ビット2の補数で表す。
を4ビット2の補数で表すと になる(確認は下記参照)。 - 符号ビットは正なので 0。仮数欄は最上位が1、残りは0。
以上よりビット列は s=0, e=1111, f=1000…0(選択肢の表記と一致) → ウ。
(補助計算)4ビット2の補数での値の読み方:ビット b3 b2 b1 b0 の値は 。
1111 の場合:。
1111 の場合:。
選択肢別の誤答解説
- ア:s=0, e=0001(+1)、f=1000…0。仮数が0.5で指数が+1なら値は となり 0.25 とは異なる。
- イ:s=0, e=1001。4ビット2の補数で 1001 は なので値は (非常に小さい値)で 0.25 ではない。
- ウ:s=0, e=1111(-1), f=1…0。仮数 0.5 と指数 -1 により となり正しい。
- エ:s=1(負数)、e=0001(+1),f=1000…0。符号が負になっており値は負数(-1.0 相当)で 0.25 とは符号からして不一致。
よくある誤解
- 1111 は「+15」と誤解する:符号付き2の補数表現では MSB に負の重みがあるため、1111 は -1 になる(上記の読み方を確認すること)。
- 正規化の方向を間違える:0.01_2 を としてしまう誤りがあるが、本問の仮数定義では「仮数部の最上位桁が1(=0.1xxx の形)」を満たす形にするため、 が正しい。
- IEEE754 と混同する:IEEE754 は指数にバイアスを用い、仮数に暗黙の先頭1(1.x)を使う場合がある。本問は「指数は2の補数」「仮数は符号なし2進数で最上位が1になるよう正規化」と定義されており、取り扱いが異なる。
補足コラム
- 2進表現の正規化にはルールが複数ある。今回のように「仮数を 0.1xxx の範囲にする」方式は、仮数フィールドが小数部(小数点のすぐ右が最上位桁)として扱われるフォーマットに適合する。対照的に、IEEE754 単精度は仮数を 1.x の形(暗黙の1)にするため、指数の扱い(バイアス)や格納法が異なる点に注意。
- 2の補数の一般的な変換(負の数の表現):負の値 の2の補数表現は、 をビット幅で反転してから1を加えるか、最上位ビットに負の重みを当てて総和で表現する。
FAQ
Q. なぜ仮数を 0.1 にして指数を -1 にしたのか?
A. 正規化の定義が「仮数の最上位が1になるように調整する」ため、元の 0.01_2 を として表現すると仮数の最上位が1になり、元の値に等しくなるからです。
A. 正規化の定義が「仮数の最上位が1になるように調整する」ため、元の 0.01_2 を として表現すると仮数の最上位が1になり、元の値に等しくなるからです。
Q. 4ビットの 1111 が -1 になる確かな確認方法は?
A. 上位ビットに負の重みがあることを使って計算する方法()か、1111 を反転して0000 に1を足すと 1 になり元の絶対値が1で負の符号が付くことから確認できます。
A. 上位ビットに負の重みがあることを使って計算する方法()か、1111 を反転して0000 に1を足すと 1 になり元の絶対値が1で負の符号が付くことから確認できます。
Q. 仮数部の残りビットをすべて0にするのは本当に許される?
A. 許されます。必要なのは「最上位が1」になることだけで、残りが0でも正規化条件を満たします。
A. 許されます。必要なのは「最上位が1」になることだけで、残りが0でも正規化条件を満たします。
関連キーワード: 浮動小数点, 正規化, 2の補数, 仮数, 指数表現

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

