2進数から8進数への変換ツール
8進数は、Unixのファイルパーミッション(chmod 755)、古いPDP時代のマニュアル、いくつかのマイコン向けツールチェーンで今も使われています。このツールは任意の2進数の文字列を右から3ビットずつまとめ、各グループを0から7までの8進数の桁に対応させます。0755を8進数リテラルとして扱う言語向けに、先頭ゼロを付けるオプションも用意しています。
2進数を8進数に変換する手順
-
1
2進数の値を入力する
空白は取り除かれます。長さは任意です。左端のグループは自動的に3ビットになるよう先頭にゼロが補われます。
-
2
右から3ビットずつまとめる
`111101100` は `111 101 100` になります。まとめる向きが重要で、常に右から左へ行います。
-
3
各3ビットを対応させる
000 = 0、001 = 1、010 = 2、そして 111 = 7 まで。各3ビットは必ず1つの8進数の桁に対応します。
-
4
結果を読んでコピーする
そのままの桁(`754`)、先頭ゼロ付き(`0754`)、または Python 3 や Rust に対応した `0o` 付き(`0o754`)から選べます。
3ビットと8進数の対応表
| 2進数 | 8進数 |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 2 |
| 011 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
例: Unixのパーミッション
rwxr-xr-x は、所有者が読み取り・書き込み・実行の権限を持ち、グループとその他は読み取り・実行の権限を持つことを表します。2進数では 111 101 101 となり、これはそのまま8進数 755 にまとまります。chmod に渡すのとまったく同じ数値です。
8進数が役立つ場面
- ファイルパーミッション:
chmod 644、umask 022、stat -c %aはいずれも8進数で表します。 - エスケープシーケンス: C言語の
\100は@(10進数で64)を表す8進数です。 - 古いマシンコード: PDP-8、PDP-11、初期のDEC文書では、ワードサイズが3ビットの倍数だったため、オペコードを8進数で記載しています。
- 見やすさ: 3ビットごとのまとまりは、16進数のように多くの文字を使わずに、2進数より速く読めます。
注意点
- C言語では先頭ゼロが8進数を意味する:
0755は8進数の755(= 10進数の493)、755は10進数の755です。貼り付ける前に使っている言語を確認してください。 - JavaScriptは旧式の8進数表記を廃止した: strictモードでは
0755が拒否されます。代わりに0o755を使ってください。 - まとめる向き: 左から右にまとめると、長さが3の倍数でないビット列では必ず誤った結果になります。
よくある質問
パーミッションのフラグが、役割(所有者・グループ・その他)ごとに3つずつ(読み取り・書き込み・実行)きれいなグループになっているからです。各3ビットは8進数の桁に1対1で対応するため、rwxr-xr-x は一手で 755 と読めます。
C言語、Perl、シェルでは先頭に 0 を付けます。Python 3、Rust、Swiftでは 0o を使います。コマンドラインの chmod では接頭辞なしで使います。
負の数には符号付きのビット幅(2の補数)が必要です。先にビット幅を指定してください。指定しない場合、このツールはすべての入力を符号なしとして扱います。
いいえ。このツールが左端のグループを3ビットになるよう先頭にゼロを補います。1111 は 001 111 になり、8進数では 17 です。
関連ツール
カラーパレットジェネレーター
基準のHEXカラーから、モノクロマティック、類似色、補色、トライアド、テトラードのパレットを生成し、コピーしやすいCSS変数として書き出します。
ランダム英字ジェネレーター
A-Zの英字をランダムに生成します。文字数を指定し、大文字・小文字・混在を選んで、ゲーム、課題、授業活動に使えます。
HEX カラーピッカー
色を見た目で選び、HEX、RGB、HSL、HSV、CMYK の値と、白・黒に対するコントラストを確認できます。
JSONフォーマッター
JSONを貼り付けて2スペースまたは4スペースで読みやすく整形し、コンパクトに圧縮し、コピー前に構文をすばやく確認できます。
ランダムカラー生成ツール
1〜50個のランダムなHEXカラーを生成し、色見本で確認して、CSSやテスト、配色検討に使えるコードをコピーできます。
ランダムカラーパレットジェネレーター
2〜15色のランダムなカラーパレットを生成し、ビビッド、パステル、ミュート、ダークからスタイルを選んで、HEXコードやCSS変数をコピーできます。