FE EXAM

8進数(0〜7だけで数を表す)

8進3桁の各位を変えると、10進数と2進9ビットがリアルタイムに連動します。「2進数3桁 = 8進数1桁」のきれいな対応関係を確かめましょう。

INTERACTIVE VISUALIZATION
8進数の桁
2進3ビットの組
10進数
73
8進数
111
2進数(3桁ずつ区切り)
001 001 001
10進値スライダー73
0511
プリセット
各桁の「+」「−」で0〜7の値を変えると、下の2進3ビットが連動します。3桁ずつのまとまりがそれぞれ8進1桁に対応していることを確認してください。
64の位 (82=64)
1
0
0
1
421
8の位 (81=8)
1
0
0
1
421
1の位 (80=1)
1
0
0
1
421
計算式
64×1 + 8×1 + 1×1=73
解説

📌
8進数とは

10進数(0〜9の10種類)0 1 2 3 4 5 6 7 8 98進数(0〜7の8種類)0 1 2 3 4 5 6 7「8」になるとき桁上がりして「10」(8進数の10は10進数の8)

8進数とは、0〜7の8種類の数字だけで数を表す方法です。10進数の「9の次は10」と同じように、8進数では「7の次は10」になります。

各桁の重み8のべき乗です。右から順に 1, 8, 64, 512, ... となります。
・8進数の 111 = 64×1 + 8×1 + 1×1 = 73(10進)
・8進数の 777 = 64×7 + 8×7 + 1×7 = 511(10進、3桁の最大)

上のツールで各桁を「+」「−」で動かしてみてください。7の次にもう一回「+」を押すと桁上がりが起きる(実際には次の桁を増やす操作になります)感覚をつかみましょう。

📌
2進数3桁との対応関係

2進数9桁101110011563101 110 011₂ = 563₈ = 371₁₀

8進数の最大の特徴は、2進数3桁=8進数1桁という綺麗な対応関係があることです。2進数3桁で表せる組み合わせは 2³ = 8通り、ちょうど8進数1桁の数(0〜7)と一致するためです。

対応表は次の通りです(暗記推奨)。
000 = 0 / 001 = 1 / 010 = 2 / 011 = 3
100 = 4 / 101 = 5 / 110 = 6 / 111 = 7

この対応のおかげで、2進数↔8進数の変換は「3桁ずつ区切って読むだけ」でできます。長い2進数を扱うときに、8進数で書けば桁数が約1/3に圧縮されて、人間にとって読みやすくなります。これが8進数が生まれた歴史的な理由です。

📌
代表的な変換パターン

パターン1: 2進数 → 8進数10110011₂→ 右から3桁ずつ →263₈パターン2: 8進数 → 10進数563₈= 5×64 + 6×8 + 3×1= 371₁₀※ 末尾の ₈ ₁₀ は基数を表す(書かれてなければ10進)

8進数は主に2進数とのまとめ役として使われます。代表的な変換は次のパターンです。
2進数 → 8進数の変換:右から3桁ずつ区切り、それぞれを0〜7に変換
8進数 → 10進数の変換:各桁に8のべき乗を掛けて足す
8進数 → 2進数の変換:各桁を3ビットの2進数に展開(0→000、1→001、…、7→111)

実務での出現頻度は16進数のほうが圧倒的に高いですが、UNIX系のファイル権限(chmod 755 のような表記)はいまも8進数を使います。権限の3つの組(所有者・グループ・その他)がそれぞれ2進数3ビットで表され、それを8進数1桁にまとめているのです。

上のツールで「255」のプリセットを選んでみてください。10進255は8進では 377、2進では 011 111 111 です。8進3桁を増やして「511」(=8進数の777)にすると、2進9桁が全部ONになることが確認できます。

関連コンテンツ