8進3桁の各位を変えると、10進数と2進9ビットがリアルタイムに連動します。「2進数3桁 = 8進数1桁」のきれいな対応関係を確かめましょう。
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の次にもう一回「+」を押すと桁上がりが起きる(実際には次の桁を増やす操作になります)感覚をつかみましょう。
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進数が生まれた歴史的な理由です。
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になることが確認できます。