浮動小数点形式
小数点数を表すもう1つの形式である浮動小数点形式では、小数点数を符号部、指数部、仮数部という3つの整数の情報で表す。
例えば、 小数点のある0101.1010という2進数を浮動小数点形式で表す場合は、整数部が0になるように桁をずらして0101.1010=0.1011010×23にして、小数点以下の1011010を仮数部とする。 桁を3つ分ずらしたことによって生じた23の3を2進数で表した11を指数部とする。 符号部は、 プラスを0で表し、マイナスを1で表す。 ここでは、プラスの値なので、符号部は0である。 ただし、この符号部は、2の補数表現の符号ビットとは違う。 1 ビットで、プラスとマイナスという2通りの情報を符号化している。
| ステップ | 説明 | 結果 |
|---|---|---|
| 元の数 | 元の2進数 | 0101.1010₂ |
| 小数点を移動して、整数部が1桁(1)または0になるように調整 | 0101.1010 = 0.1011010 × 2³(小数点を3つ左にずらした) | |
| 小数点移動で得られた指数 | 2³ → 指数 = 3 | |
| 指数を2進数で表す | 3₁₀ = 11₂ | |
| 小数点以下(0.1011010)の部分を仮数部とする | 仮数部 = 1011010 | |
| 符号 | 正の値 → 符号ビット = 0 |
浮動小数点形式の構成
| 区分 | 内容 | 具体的な値 | 説明 |
|---|---|---|---|
| 符号部 | 0 | 0 | 正の数なので0(負なら1) |
| 指数部 | 3(₁₀) | 11₂ | 小数点を左に3桁ずらしたため指数=3 |
| 仮数部 | 1011010 | 1011010 | 正規化後の小数点以下の部分 |
| 形式全体 | 0 11 1011010 | 符号部(1ビット) + 指数部(2ビット) + 仮数部(7ビット) |
浮動小数点形式の具体例
浮動小数点形式の符号部、 仮数部、 指数部の入れ物を、 それぞれ何ビットで表すかは、試験問題に示される。 例えば、先ほどの例にあげた小数点数を、符号部1ビット、 指数部7ビット、 仮数部8ビットとした全体で16ビットの浮動小数点形式で表すと、 下図のようになる。 入れ物をサイズー 杯に使って、 指数部は右詰めで、 仮数部は左詰めで格納する。
16ビット浮動小数点形式の例
1. 正規化の確認
| ステップ | 内容 | 結果 |
|---|---|---|
| 元の値 | 0101.1010₂ | — |
| 正規化 | 小数点を3桁左へ動かす | 0101.1010 = 0.1011010 × 2³ |
| 指数 | 2³ → 指数 = 3 | |
| 指数(2進数) | 3₁₀ = 0000011₂ (7ビットで表す) | |
| 仮数部 | 小数点以下の 1011010 を8ビットにする | 10110100(右端に0を補う) |
| 符号 | 正の数なので 0 | 0 |
2. 各部の構成(16ビット構造)
| 区分 | ビット数 | 値 | 説明 |
|---|---|---|---|
| 符号部 | 1 | 0 | 正の数なので0 |
| 指数部 | 7 | 0000011 | 3を2進数7ビットで表現 |
| 仮数部 | 8 | 10110100 | 小数点以下を8ビット化(右端に0を補う) |
3. 全体の16ビット構成
| ビット位置 | 15 | 14〜8 | 7〜0 |
|---|---|---|---|
| 部分名 | 符号部 | 指数部 | 仮数部 |
| 値 | 0 | 0000011 | 10110100 |
結果(16ビット浮動小数点表現)
0 0000011 10110100
(符号部1ビット + 指数部7ビット + 仮数部8ビット)
浮動小数点形式には、整数部が0になるように桁をずらすのではなく、
0101.1010=1.011010 × 22 のように、整数部が1になるように桁をずらして整数部の1を省略した小数点以下を仮数部とする形式もある。 どちらの形式であっても、 1つの小数点数を符号部、指数部、 仮数部という3つの整数の情報で表すことに違いはない。
(参考)情報処理教科書 出るとこだけ!基本情報技術者[科目A][科目B]2025年版


コメント