8進数

octal

8進数とは?仕組み・使い方・2進数との関係まで初心者向けにわかりやすく解説

コンピュータやLinuxを学んでいると、 「755」や「644」といった数字を目にすることがあります。

これらは8進数(はっしんすう)で表現された値であり、 特にLinuxのファイル権限などでよく使われます。

普段は10進数を使っているため、 最初は違和感があるかもしれませんが、 仕組み自体はとてもシンプルです。

本記事では初心者向けに、

  • 8進数とは何か
  • 基本ルール
  • 2進数との関係
  • 10進数との変換方法
  • Linuxでの具体的な使い方

をわかりやすく解説します。

8進数とは何か

8進数とは、 0〜7の8種類の数字で表現する数の仕組みです。

そして、

8になると桁が上がる

というルールになります。

つまり、

  • 10進数 → 10で繰り上がる
  • 8進数 → 8で繰り上がる

という違いだけです。

8進数の数え方

実際に8進数で数を数えると、 次のようになります。

  • 0(0)
  • 1(1)
  • 2(2)
  • 3(3)
  • 4(4)
  • 5(5)
  • 6(6)
  • 7(7)
  • 10(8)
  • 11(9)
  • 12(10)

※括弧内は10進数の値です。

「7の次が10になる」点がポイントです。

8進数の仕組み(桁の意味)

8進数も、 各桁に意味があります。

10進数では10の累乗ですが、 8進数では8の累乗になります。

  • 1(8⁰)
  • 8(8¹)
  • 64(8²)
  • 512(8³)

例えば、

157

という8進数は、

  • 1 × 64
  • 5 × 8
  • 7 × 1

となり、

64 + 40 + 7 = 111(10進数)

になります。

8進数と2進数の関係

8進数は、 2進数と非常に相性が良い進数です。

その理由は、

2³ = 8

であるため、

2進数を3桁ずつまとめて表現できる

からです。

例:

2進数:110 101 111

これを3桁ずつ区切ると、

  • 110 → 6
  • 101 → 5
  • 111 → 7

となり、

657(8進数)

と変換できます。

この仕組みにより、 長い2進数を短く表現できます。

10進数から8進数への変換

10進数を8進数に変換するには、 8で割り続ける方法を使います。

例:10進数「100」

100 ÷ 8 = 12 余り4
 12 ÷ 8 = 1 余り4
  1 ÷ 8 = 0 余り1

下から順に並べると、

144(8進数)

になります。

8進数から10進数への変換

8進数を10進数に変換するには、 各桁に8の累乗を掛けて足します。

例:144

  • 1 × 64
  • 4 × 8
  • 4 × 1

合計:

64 + 32 + 4 = 100

Linuxでの8進数の使い方(重要)

8進数は、 Linuxでは特に重要な役割を持ちます。

代表的な例が ファイル権限(パーミッション)です。

例えば、

$ chmod 755 sample.sh

この「755」は8進数です。

それぞれの数字は、

  • 7 → 読み(4)+書き(2)+実行(1)
  • 5 → 読み(4)+実行(1)
  • 5 → 読み(4)+実行(1)

という意味になります。

つまり、

  • 所有者:すべて許可
  • グループ:読み+実行
  • その他:読み+実行

という設定になります。

8進数が使われる理由

8進数が使われる理由は、

  • 2進数を短く表現できる
  • 人間が理解しやすい
  • 権限などを数値で簡潔に表現できる

といった点にあります。

初心者が理解するコツ

8進数を理解するためのポイントは、

「8で繰り上がるだけ」

と考えることです。

さらに、

  • 2進数は3桁ごとにまとめられる
  • Linuxでは権限に使われる

この2点を押さえると理解が深まります。

まとめ

8進数は、 0〜7の数字で表現する進数です。

  • 8で繰り上がる
  • 8の累乗で構成される
  • 2進数を3桁単位で表現できる

特にLinuxでは、 ファイル権限(chmod)で頻繁に使われるため、 非常に重要な知識です。

2進数との関係を理解すると、 8進数は一気にわかりやすくなります。

インフラやプログラミングを学ぶ上で、 ぜひ押さえておきたい基礎知識の一つです。