10進数を8進数に変換する手順は「8で割って余り(0〜7)を記録し、それを逆順に並べる」。基本は10進→2進と同じ、割る数だけが違います。
10進数 → 8進数は、10進数の値を 0〜7 だけを使う8進数表記に変換する操作です。手順は10進→2進と同じで、「割る数を 2 ではなく 8 に変えるだけ」。
たとえば63(10進)を8進数に変換すると77(8進)。これは「63 = 7×8 + 7」という意味です。
8進数は2進数3桁とちょうど対応する(2³=8)ので、長い2進数を読みやすく短縮する用途で歴史的に使われてきました。UNIX系のファイル権限「755」「644」も8進数表記です。
手順は3ステップ。
・① 元の数を 8 で割り、余り (0〜7) を書き出す
・② 商を「次の割られる数」として、また 8 で割る
・③ 商が 0 になるまで①②を繰り返す
63 を変換する例:
・63 ÷ 8 = 7 余り 7
・7 ÷ 8 = 0 余り 7(商が 0 で終了)
注意ポイント: 余りは必ず0〜7 の範囲に収まります。もし余りに 8 や 9 が出てきたら計算ミスです。
8進数が情報処理で重宝されてきた最大の理由は、「2進数3桁=8進数1桁」という綺麗な対応関係があるからです。2³ = 8 なので、2進3桁で表せる組み合わせ(8通り)が、ちょうど8進1桁(0〜7)と一致します。
3ビット ↔ 8進1桁の対応表:
・000 = 0、001 = 1、010 = 2、011 = 3
・100 = 4、101 = 5、110 = 6、111 = 7
この対応のおかげで、「10進→2進→3桁ずつまとめて8進」という別ルートでも変換できます。2進数の暗算が得意な人はこちらの方が速いことも。
例: 63 を変換
63 = 32 + 16 + 8 + 4 + 2 + 1 = 111111(2)
右から3桁ずつ: 111 | 111
各グループを 0〜7 に: 7, 7 → 77(8)
UNIX権限との関係: ファイル権限 chmod 755 の「7=rwx」「5=r-x」も、3ビット(読み=4、書き=2、実行=1)の組み合わせを8進1桁で表現しているからこそ簡潔に書けます。
応用ポイント: 「2進数 110101 を8進数で表すといくつか?」のような場合は、右から3桁ずつ区切るだけで一瞬で求められます(110 | 101 → 65(8))。