---
title: "浮動小数点形式とは？符号・指数部・仮数部のビット列を読む方法【基本情報技術者試験】"
description: "浮動小数点形式を「符号・指数部・仮数部を使って小数を表す形式」として整理し、最大値を表すビット列、指数部と仮数部の役割、2進数から16進数への変換をFE試験で切れるように解説します。"
last_modified_at: "2026-07-25"
canonical_url: "https://stemtazoo.github.io/fe/floating-point-format/"
section: "fe"
---

## まず結論

浮動小数点形式とは、**符号・指数部・仮数部を使って小数を表す形式**です。

基本情報技術者試験では、ビット列を細かく計算する前に、次の3つを見ます。

| 部分 | 役割 | 正の最大値を考えるとき |
|---|---|---|
| 符号部 | 正か負かを表す | 正の数にする |
| 指数部 | 値の大きさの範囲を表す | できるだけ大きくする |
| 仮数部 | 有効数字を表す | できるだけ大きくする |

判断の基本は次のとおりです。

```text
正の最大値を作る
↓
符号部は正を表す値
指数部は最大
仮数部も最大
```

ただし、**各部分のビット数や指数の表し方は、問題文で指定された形式に従います**。

## 直感的な説明

浮動小数点形式は、小数をそのまま並べるのではなく、**符号・大きさ・細かい値**に分けて表す方法です。

ざっくり言うと、次の3つに分けます。

```text
符号部：正か負か
指数部：どれくらい大きいか
仮数部：細かい数値部分
```

最大値を作りたいなら、考え方はシンプルです。

```text
正の数にする
→ 符号部を正にする

指数を大きくする
→ 指数部を最大にする

有効数字を大きくする
→ 仮数部を最大にする
```

つまり、**まず正負を決め、その後で指数部と仮数部をできるだけ大きくする**と考えます。

## 定義・仕組み

浮動小数点形式では、数を次のような部品で表します。

| 部品 | 意味 | 例 |
|---|---|---|
| 符号部 | 正負を表す | 0なら正、1なら負という形式が多い |
| 指数部 | 小数点の位置や値の大きさを表す | 指数が大きいほど値が大きくなりやすい |
| 仮数部 | 有効数字の部分を表す | 仮数が大きいほど値が大きくなりやすい |

### 問題独自の形式に注意する

FE試験では、IEEE 754そのものではなく、問題文で独自の形式が指定されることがあります。

例えば、24ビットを次のように分ける形式です。

```text
S：1ビット
E：7ビット
M：16ビット
```

```text
S EEEEEEE MMMMMMMMMMMMMMMM
```

さらに、値が次の式で表されるとします。

```text
(-1)^S × 16^(E-64) × 0.M
```

この例では、`E-64` のように一定値を引くことで、指数部から正の指数と負の指数の両方を表せるようにしています。

このような問題では、**一般的な浮動小数点形式の知識に加えて、問題文で示されたビット配置と計算式を読むこと**が重要です。

### IEEE 754との違い

実際のコンピュータでは、IEEE 754に基づく浮動小数点形式が広く使われています。

ただし、試験問題では学習用に簡略化された形式や、基数が16の独自形式が示されることがあります。

```text
IEEE 754
→ 実際のコンピュータで広く使われる標準

問題文で指定された独自形式
→ その問題の定義に従って解く
```

このテーマは、基本情報技術者試験の「データ表現」や「コンピュータシステム」と関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

科目Aでは、浮動小数点形式のビット列から、最大値や最小値を表すものを選ぶ問題が出ることがあります。

効率よく解く手順は、次のとおりです。

1. 問題文で符号部・指数部・仮数部の位置を確認する
2. 符号部が何を表すか確認する
3. 正の最大値なら、符号部を正にする
4. 指数部を最大にする
5. 仮数部を最大にする
6. 必要なら、4ビットずつ区切って16進数に直す

### 独自形式の計算例

先ほどの24ビット形式で、正の最大値を表す例を考えます。

```text
S = 0
E = 1111111
M = 1111111111111111
```

これをつなげると、次のビット列になります。

```text
0 1111111 1111111111111111
```

見やすく並べると、

```text
011111111111111111111111
```

これを4ビットずつ区切ります。

```text
0111 1111 1111 1111 1111 1111
```

16進数に直すと、

```text
7 F F F F F
```

したがって、この**独自形式の例**では `7FFFFF` になります。

ここで覚えるべきなのは答えそのものではなく、次の手順です。

```text
符号を確認
→ 指数部を最大
→ 仮数部を最大
→ 4ビットずつ16進数へ変換
```

## どんな場面で使う？


プログラムやアルゴリズムの問題で、数値の表現範囲、丸め誤差、桁落ち、オーバーフローのような話が出る可能性はあります。

そのときは、細かいビット列の暗記よりも、次の感覚が役立ちます。

```text
指数部
→ 表せる値の大きさの範囲に関係する

仮数部
→ 有効桁数や細かさに関係する
```

つまり、問題文では次のように位置づけます。

```text
ビット列から16進数を選ぶ問題
→ 科目A向き

数値誤差や表現範囲を読む問題
→ 問題文でも補助知識として役立つ
```

## よくある誤解・混同

浮動小数点形式では、次の混同がよく起こります。

| 混同 | 正しい切り分け |
|---|---|
| 最大値なので全部1にすればよい | 符号部まで1にすると負の数になる形式が多い |
| 先頭が1でも大きいと思う | 先頭が符号なら、1は負を表すことがある |
| 指数部だけ最大にすればよい | 仮数部も最大にする必要がある |
| 仮数部だけ見ればよい | 指数部も値の大きさに大きく関係する |
| どの問題もIEEE 754で解く | 問題文で独自形式が指定されていれば、その定義に従う |
| 2進数から16進数への変換で桁をずらす | 4ビットずつ区切って変換する |

特に、最大値を問われたときは、次の順で見ます。

```text
まず符号を見る
→ 正の最大値になる符号を選ぶ

次に指数を見る
→ 指数部を最大

最後に仮数を見る
→ 仮数部を最大
```

先頭ビットが符号部なら、先頭が1の選択肢は、正の最大値ではない可能性があります。

## まとめ（試験直前用）

- 浮動小数点形式は、符号部・指数部・仮数部で小数を表す形式
- 符号部は正負、指数部は値の大きさ、仮数部は有効数字に関係する
- 正の最大値を作るなら、まず符号部を正にする
- 指数部と仮数部をできるだけ大きくする
- 問題文で独自形式が指定されていれば、そのビット配置と式に従う
- 2進数を16進数に直すときは、4ビットずつ区切る
- FE試験では、ビット列・数値誤差・表現範囲を切り分けて考える
