---
title: "16進小数の変換とは？4ビット対応で効率よく解く方法【基本情報技術者試験】"
description: "16進小数を2進数や2のべき乗の和に変換する問題を、16進数1桁=2進数4桁という対応で整理し、小数点の右側を2^-1から数える考え方と実践問題をFE試験向けに解説します。"
last_modified_at: "2026-07-25"
canonical_url: "https://stemtazoo.github.io/fe/hexadecimal-fraction-conversion/"
section: "fe"
---

## まず結論

16進小数の変換は、**16進数1桁を2進数4桁に直す** と効率よく解けます。

基本情報技術者試験では、10進数に直して計算するより、次の対応を使う方が速いです。

```text
16進数 1桁
→ 2進数 4桁
```

特に、次の文字はよく使います。

| 16進 | 2進 |
|---|---|
| A | 1010 |
| B | 1011 |
| C | 1100 |
| D | 1101 |
| E | 1110 |
| F | 1111 |

小数点の右側は、左から順に **2^-1、2^-2、2^-3** と数えます。

```text
.1010
 ↓↓↓↓
2^-1 2^-2 2^-3 2^-4
```

## 直感的な説明

16進数は、2進数を4桁ずつまとめた表記です。

例えば、2進数の4桁は、16進数1桁で表せます。

```text
1010 → A
1100 → C
```

逆に、16進数を2進数に戻すときは、1桁ずつ4桁の2進数に戻します。

```text
A → 1010
C → 1100
```

そのため、16進小数も同じように、整数部と小数部をまとめて4桁ずつ戻せばよいです。

```text
3B.A5
= 0011 1011 . 1010 0101
```

先頭の不要な0を取れば、2進数として読みやすくなります。

```text
111011.10100101
```

## 定義・仕組み

16進数は、0〜9とA〜Fを使って値を表す記数法です。

16進数1桁は、2進数4桁に対応します。

| 16進 | 2進 | 10進での値 |
|---|---|---:|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| A | 1010 | 10 |
| B | 1011 | 11 |
| C | 1100 | 12 |
| D | 1101 | 13 |
| E | 1110 | 14 |
| F | 1111 | 15 |

小数点の左側は、右から順に **2^0、2^1、2^2** と大きくなります。

小数点の右側は、左から順に **2^-1、2^-2、2^-3** と小さくなります。

```text
1011.0101

整数部：
1    0    1    1
2^3  2^2  2^1  2^0

小数部：
. 0     1     0     1
  2^-1  2^-2  2^-3  2^-4
```

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

## 科目Aでどう出る？

科目Aでは、16進小数を2のべき乗の和で表す問題が出ることがあります。

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

1. 16進数1桁を2進数4桁に直す
2. 小数点の位置をそのまま残す
3. 2進数で1になっている桁だけを見る
4. 小数点の左は2^0から、右は2^-1から数える

例えば、16進小数 **3B.A5** を考えます。

まず、1桁ずつ2進数に直します。

| 16進 | 2進 |
|---|---|
| 3 | 0011 |
| B | 1011 |
| A | 1010 |
| 5 | 0101 |

並べると、次のようになります。

```text
3B.A5
= 0011 1011 . 1010 0101
= 111011.10100101
```

整数部は、次の位置に1があります。

```text
111011
→ 2^5 + 2^4 + 2^3 + 2^1 + 2^0
```

小数部は、次の位置に1があります。

```text
.10100101
→ 2^-1 + 2^-3 + 2^-6 + 2^-8
```

したがって、全体は次のように表せます。

```text
2^5 + 2^4 + 2^3 + 2^1 + 2^0
+ 2^-1 + 2^-3 + 2^-6 + 2^-8
```

ここで大切なのは、**小数点の右側を2^-1から数える**ことです。

## どんな場面で使う？


2進数、16進数、ビット列、アドレス、データ表現が出てくる問題では、基数変換の読み方が役立ちます。

特に、次のような場面で使います。

```text
16進数で表された値を2進数として読む
ビット列のどの位置が1かを確認する
小数点を含む値を2のべき乗で表す
```

問題文では、頭の中だけで変換しようとせず、4ビットずつ区切ってメモするのが安全です。

```text
A5
→ A   5
→ 1010 0101
```

この形にすると、桁のずれを防ぎやすくなります。

## よくある誤解・混同

16進小数の変換では、次のミスがよく起こります。

| ミス | 正しい見方 |
|---|---|
| 16進数を10進数に直してから考える | 2進数へ4桁対応で直す方が速い |
| AやCの2進表現を忘れる | A=1010、C=1100を優先して覚える |
| 小数点の右を2^0から数えてしまう | 小数点の右は2^-1から始まる |
| 先頭の0を消したあと、桁の位置をずらす | 小数点の位置は変えない |
| 小数部の0を飛ばして数える | 0の桁も位置として数える |

特に、小数部では0の桁を飛ばさないようにします。

```text
.0101

0 → 2^-1 の位置
1 → 2^-2 の位置
0 → 2^-3 の位置
1 → 2^-4 の位置
```

この場合、1があるのは **2^-2** と **2^-4** です。

## 実践問題

### 問題1

16進小数 **1A.8** と等しいものはどれか。

| 選択肢 | 式 |
|---|---|
| ア | 2^4 + 2^3 + 2^1 + 2^-1 |
| イ | 2^4 + 2^3 + 2^1 + 2^-2 |
| ウ | 2^5 + 2^4 + 2^2 + 2^-1 |
| エ | 2^4 + 2^2 + 2^1 + 2^-1 |

答え：**ア**

解き方：

```text
1A.8
= 0001 1010 . 1000
= 11010.1000
= 2^4 + 2^3 + 2^1 + 2^-1
```

### 問題2

16進小数 **2C.6** と等しいものはどれか。

| 選択肢 | 式 |
|---|---|
| ア | 2^5 + 2^3 + 2^2 + 2^-1 + 2^-2 |
| イ | 2^5 + 2^3 + 2^2 + 2^-2 + 2^-3 |
| ウ | 2^6 + 2^4 + 2^3 + 2^-1 + 2^-2 |
| エ | 2^5 + 2^2 + 2^1 + 2^-2 + 2^-3 |

答え：**イ**

解き方：

```text
2C.6
= 0010 1100 . 0110
= 101100.0110
= 2^5 + 2^3 + 2^2 + 2^-2 + 2^-3
```

### 問題3

16進小数 **5.3** と等しいものはどれか。

| 選択肢 | 式 |
|---|---|
| ア | 2^2 + 2^0 + 2^-1 + 2^-2 |
| イ | 2^2 + 2^0 + 2^-3 + 2^-4 |
| ウ | 2^3 + 2^1 + 2^-3 + 2^-4 |
| エ | 2^2 + 2^1 + 2^-1 + 2^-2 |

答え：**イ**

解き方：

```text
5.3
= 0101 . 0011
= 101.0011
= 2^2 + 2^0 + 2^-3 + 2^-4
```

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

- 16進小数は、16進数1桁を2進数4桁に直す
- A=1010、B=1011、C=1100はよく使う
- 小数点の位置はそのまま残す
- 小数点の左は2^0から右向きに数える
- 小数点の右は2^-1から右向きに数える
- 小数部の0も桁として数える
- 10進数に直すより、2進数に直して1の位置だけを見る方が速い
