---
title: "IPv4アドレスとは？各オクテットが0〜255になる理由【基本情報技術者試験】"
description: "IPv4アドレスを32ビット＝8ビット×4として整理し、各オクテットが0〜255になる理由を解説します。256が使えない理由や、表記として正しいこととホストに割り当て可能であることの違いもFE試験向けに切り分けます。"
last_modified_at: "2026-08-07"
canonical_url: "https://stemtazoo.github.io/fe/ipv4-address-notation/"
section: "fe"
---

## まず結論

IPv4アドレスは、**32ビットを8ビットずつ4つに分け、各部分を10進数で表したもの**です。

1つの部分は8ビットなので、表せる値は **0〜255** です。

基本情報技術者試験では、IPv4アドレスの表記を見たら、まず次のように確認します。

```text
各部分が0〜255に入っているか？
```

例えば、次の表記は使えません。

```text
10.10.10.256
```

`256` は8ビットでは表せないためです。

## 直感的な説明

IPv4アドレスは、32個の0と1をそのまま書くと読みにくいため、8ビットずつ4つに区切って10進数で表します。

```text
11000000 10101000 00000000 00000001
```

これを10進数に直すと、次のようになります。

```text
192.168.0.1
```

4つの数字は、それぞれ8ビット分です。

```text
8ビット . 8ビット . 8ビット . 8ビット
```

8ビットで作れる最小値は `00000000`、最大値は `11111111` です。

```text
00000000 → 0
11111111 → 255
```

そのため、IPv4アドレスの各部分は **0〜255** になります。

## 定義・仕組み

IPv4は、32ビットでアドレスを表現します。

一般的な表記では、32ビットを8ビットごとに4つへ分割し、それぞれを10進数に変換してドット `.` で区切ります。

例えば、次のIPv4アドレスを考えます。

```text
192.168.10.25
```

これは、内部では次のような4つの8ビット値として扱われます。

```text
192 | 168 | 10 | 25
```

### なぜ0〜255なのか

8ビットでは、0と1の組合せが `2^8 = 256` 通りあります。

ただし、値は0から数えるので、範囲は次のようになります。

```text
0〜255
```

つまり、次のような値はIPv4の1区切りとして使えません。

```text
256
300
999
```

一方で、`0` や `255` は値の範囲内なので、**数字としてはIPv4表記に使えます**。

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

## 科目Aでどう出る？

科目Aでは、IPv4アドレスとして正しい表記を選ぶ問題や、誤っている表記を選ぶ問題が出ることがあります。

まず、次の判断をします。

| 表記 | 判断 |
|---|---|
| `10.0.0.1` | 各部分が0〜255なので表記として正しい |
| `192.168.1.100` | 各部分が0〜255なので表記として正しい |
| `10.10.10.256` | `256` が範囲外なので誤り |
| `172.16.300.1` | `300` が範囲外なので誤り |

試験中は、難しく考える前に **256以上の値がないか** を確認すると効率的です。

```text
IPv4の各部分
→ 0〜255

256以上
→ 表記として誤り
```

## どんな場面で使う？

IPv4アドレスは、ネットワーク上の機器を識別するときに使います。

例えば、PC、サーバ、ルータなどにはIPv4アドレスが設定されることがあります。

```text
PC
→ 192.168.1.10

ルータ
→ 192.168.1.1
```

ただし、IPv4アドレスを読むときは、**表記として正しいこと**と、**そのアドレスを実際にホストへ割り当てられること**を分けて考える必要があります。

例えば、次の表記を考えます。

```text
10.0.0.0
```

各部分は0〜255に収まっているので、IPv4の10進表記としては正しい形です。

一方で、サブネットマスクによってはネットワークアドレスとして扱われ、ホストに割り当てない場合があります。

同様に、次の表記も各部分は0〜255に収まっています。

```text
224.0.1.1
```

224〜239の範囲はマルチキャスト用として扱われますが、**IPv4アドレスの表記としては成立しています**。

## よくある誤解・混同

### 誤解1：0が入っていたらIPv4アドレスとして誤り

`0` は8ビットで表現できる値なので、数字としては問題ありません。

```text
0〜255
→ 表記できる
```

ただし、ネットワークアドレスなどとして特別な意味を持つかどうかは、プレフィックス長や用途によって判断します。

### 誤解2：255が入っていたら必ず誤り

`255` も8ビットで表現できる値です。

```text
11111111 → 255
```

そのため、255が含まれているだけでは、IPv4表記として誤りとはいえません。

ブロードキャストアドレスになるかどうかは、ネットワーク部とホスト部の区切りによって決まります。

### 誤解3：224から始まるアドレスはIPv4ではない

224〜239はIPv4のマルチキャスト用アドレス範囲です。

そのため、例えば `224.0.1.1` はIPv4アドレスの表記として成立します。

```text
用途が特殊
≠ 表記が誤り
```

### 誤解4：IPv4の4つの数字は0〜256

8ビットでは256通りの値を表せますが、値は0から始まります。

```text
0, 1, 2, ... , 255
```

したがって、最大値は255です。

```text
256通り
≠ 最大値256
```

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

- IPv4アドレスは32ビット
- 8ビットずつ4つに分けて10進数で表す
- 各部分の値は **0〜255**
- `256` 以上があれば、IPv4の通常の10進表記として誤り
- `0` や `255` が含まれるだけでは誤りとはいえない
- 表記として正しいことと、ホストに割り当て可能なことは別に判断する

```text
IPv4
→ 8ビット × 4
→ 各部分は0〜255
```
