8進数変換ツール

8進数(オクタル)とは

8進数(オクタル)は、0から7までの8つの数字(0, 1, 2, 3, 4, 5, 6, 7)を使用する数体系です。 基数が8であり、各桁は8の累乗(80, 81, 82, ...)を表します。 コンピュータサイエンスやプログラミングの世界では、UNIXシステムのファイル権限の表現や 一部のプログラミング言語でのエスケープシーケンスなどで使用されています。

8進数と2進数の関係

8進数と2進数の間には密接な関係があります。8は2の3乗(23)であるため、 8進数の1桁は2進数の3桁に対応します。このため、2進数から8進数への変換や、 8進数から2進数への変換は比較的簡単に行うことができます。これは、16進数が2進数の4桁に対応するのと似ています。

8進数と2進数の対応表

8進数

  • 0 → 000
  • 1 → 001
  • 2 → 010
  • 3 → 011

8進数

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

8進数の変換方法

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

10進数から8進数に変換するには、10進数を8で割り、余りを記録する方法を使います。 例えば、10進数の「75」を8進数に変換する場合:

75 ÷ 8 = 9 余り 3
9 ÷ 8 = 1 余り 1
1 ÷ 8 = 0 余り 1
結果:113(下から順に読む)

このように、10進数の75は8進数では113となります。

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

8進数から10進数への変換は、各桁の値に対応する8の累乗を掛けて合計する方法です。 例えば、8進数の「47」を10進数に変換する場合:

4×81 + 7×80
= 4×8 + 7×1
= 32 + 7
= 39

このように、8進数の47は10進数では39となります。

8進数から2進数への変換方法

8進数から2進数への変換は、各8進数の桁を対応する3桁の2進数に置き換えるだけです。 例えば、8進数の「25」を2進数に変換する場合:

2 → 010
5 → 101
結果:010101

このように、8進数の25は2進数では010101となります。先頭の0は省略できるので、10101とも表記できます。

8進数から16進数への変換方法

8進数から16進数への直接変換は少し複雑ですが、8進数→10進数→16進数、または8進数→2進数→16進数という手順で変換できます。 例えば、8進数の「57」を16進数に変換する場合:

方法1: 8進数→10進数→16進数

5×81 + 7×80 = 47(10進数)
47 ÷ 16 = 2 余り 15(F)
結果:2F

方法2: 8進数→2進数→16進数

5 → 101
7 → 111
101111(2進数)
0010 1111 → 2F(16進数)

どちらの方法でも、8進数の57は16進数では2Fとなります。

8進数の実用例

UNIXファイル権限

UNIXやLinuxシステムでは、ファイルやディレクトリの権限(パーミッション)を8進数で表現します。 例えば、「chmod 755 file.txt」というコマンドは、所有者に読み書き実行権限(7=4+2+1)、 グループとその他のユーザーに読み実行権限(5=4+1)を与えます。 これは2進数では「111 101 101」に対応し、それぞれの桁が読み取り(r=4)、書き込み(w=2)、実行(x=1)の権限を表しています。

プログラミング言語でのエスケープシーケンス

C、Java、Pythonなどの多くのプログラミング言語では、文字列内の特殊文字を表現するために バックスラッシュ(\)に続いて8進数を使用することがあります。例えば、「\141」はASCIIコードで 小文字の「a」を表します。16進数 変換 やり方を知ることで、これらのエスケープシーケンスも容易に理解できます。

歴史的背景

8進数は、初期のコンピュータシステムで広く使用されていました。特に、PDPシリーズやVAXなどの コンピュータでは、ワードサイズが18ビットや36ビットだったため、3ビットずつのグループに分けやすい 8進数が便利でした。現代のコンピュータでは16進数がより一般的ですが、歴史的な理由から 8進数はまだ多くのシステムで使用されています。

2進数・10進数・16進数との関係

進数変換を理解する上で、各進数の関係性を把握することが重要です。特に、2進数 16進数 変換や 10進数 2進数 変換は頻繁に行われる操作です。8進数はこれらの中間に位置し、特に2進数との 変換が容易であるという特徴があります。

変換例一覧

10進数 2進数 8進数 16進数
10 1010 12 A
20 10100 24 14
64 1000000 100 40
100 1100100 144 64
255 11111111 377 FF