FE EXAM

8進数 → 2進数(各桁を3ビットに展開)

8進数の各桁(0〜7)をそのまま3ビットの2進数に展開して連結するだけ。逆方向の「3桁ずつ束ねる」を逆再生する操作です。

INTERACTIVE VISUALIZATION
8進数
2進数
8進数 (入力)
755(8)
桁数 × 3
3 × 3 = 9
2進数 (結果)
111101101(2)
8進数を入力
プリセット
各 8進数の桁を、対応する3ビットの2進数に展開し、連結します。0→000、1→001、…、7→111 の対応を覚えていれば、すぐ変換できます。
STEP 1: 各桁を3ビットの2進数に展開
7
1
1
1
5
1
0
1
5
1
0
1
STEP 2: 連結して先頭の 0 を除去
連結: 111101101
755(8) = 111101101(2)
解説

📌
8進→2進変換とは

8進数 → 2進数は、コンパクトな8進数表記をビット列に展開する操作です。「各桁をそのまま3ビットに展開して連結する」だけで、計算らしい計算がいらない最も楽な変換のひとつ。

例:
7(8) = 111(2)
17(8) = 1111(2)(001+111 → 先頭0除去)
755(8) = 111101101(2)(111+101+101)

この変換が綺麗にできるのは、2³ = 8 という関係のおかげ。「2進3桁=8進1桁」というぴったりの対応があるので、桁ごとの展開だけで済みます。

🛠
各桁を3ビットに展開する手順

手順は2つだけです。
・① 各桁を3ビットの2進数に変換(先頭の0は省略しない)
・② 左から順に連結し、必要なら先頭の余分な0を除去

対応表(暗記推奨):

8進2進3桁
0000
1001
2010
3011
4100
5101
6110
7111

「先頭の0は省略しない」のがポイント. たとえば 8進数 17 を変換するとき、1 を「1」ではなく「001」と書かないと、連結したときに「1111」ではなく「1+111=1111」にならず、間違って「1111」ではなく「1+111=連結後 1 → 1+111 = 1111」となります。
・1 → 001
・7 → 111
・連結 001 + 111 = 001111
・先頭の0除去 → 1111

計算の早道

愚直にやれば「各桁を3ビット展開して連結」だけですが、慣れてくるともっと素早く解ける小ワザがいくつかあります。

① 8通りを完全暗記する
8進数は 0〜7 の たった8通りしかありません。各桁を瞬時に3ビットに変換できれば、変換時間がほぼゼロになります。

0 = 000 4 = 100
1 = 001 5 = 101
2 = 010 6 = 110
3 = 011 7 = 111

② UNIX権限の rwx で覚える
3ビットを「読み(r=4)・書き(w=2)・実行(x=1)」の権限ビットとして覚えると、図形的に思い出しやすくなります。

755(8) を2進数に
7 = 111 = rwx
5 = 101 = r-x
5 = 101 = r-x
→ 111 101 101(2)

③ 10進数を経由しない
「8進数→10進数→2進数」のように10進数を挟むと、桁が増えるほど計算が爆発します。8進1桁を直接3ビットに展開する方が圧倒的に速い。

④ 先頭の 0 除去を最後にまとめてやる
各桁を3ビットに展開する段階では必ず3桁ぶん書く。連結し終わってから、左端の余分な0だけを最後に1回除去します。途中で0を省くと境目がずれて、まったく違う値になります。

よく使うパターン:
755 → 111101101644 → 110100100
777 → 111111111(全員rwx)
600 → 110000000(所有者のみrw)

関連コンテンツ

8進数 → 2進数 | Vizigo