2進数から8進数への変換ツール
8進数は、Unixのファイルパーミッション(chmod 755)、古いPDP時代のマニュアル、いくつかのマイコン向けツールチェーンで今も使われています。このツールは任意の2進数の文字列を右から3ビットずつまとめ、各グループを0から7までの8進数の桁に対応させます。出力は接頭辞なしの素の8進数の桁です。0755のように先頭ゼロが必要な言語や0o755のような0o接頭辞が必要な言語では、自分で付けてください。
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`のような素の8進数の桁で、接頭辞は付きません。使う言語で先頭ゼロ(`0754`)や`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の補数)が必要ですが、このツールには幅の指定がなく、すべての入力を符号なしとして扱います。負の値を変換するには、まず固定幅の2の補数のビット列に書き換えてから、そのビット列を変換してください。
いいえ。このツールが左端のグループを3ビットになるよう先頭にゼロを補います。1111 は 001 111 になり、8進数では 17 です。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
HTML フォーマッター
ブラウザ内で HTML を 2 または 4 スペースで整形します。HTML はアップロードも検証もされません。
カラーパレットジェネレーター
基準のHEXカラーから、モノクロマティック、類似色、補色、トライアド、テトラードのパレットを生成し、コピーしやすいCSS変数として書き出します。
変更ログジェネレーター
分類した項目から Keep a Changelog 形式の Markdown セクションを作成します。Added、Changed、Fixed、Removed の各カテゴリに項目を貼り付け、Markdown かプレーンテキストを選んで出力をコピーするだけです。
このツールは他の言語でも利用できます
- İkiliden Sekizliye Dönüştürücü [TR]
- Convertidor de Binario a Octal [ES]
- محول الثنائي إلى الثماني [AR]
- Convertisseur binaire en octal [FR]
- Binair naar octaal-converter [NL]
- 2진수 8진수 변환기 [KO]
- Konverter Biner ke Oktal [ID]
- Binary to Octal Converter [EN]
- Bộ chuyển đổi nhị phân sang bát phân [VI]
- 二进制转八进制转换器 [ZH]
- ตัวแปลงเลขฐานสองเป็นฐานแปด [TH]
- Conversor de Binário para Octal [PT]
- Binär zu Oktal Konverter [DE]
- Binär till oktal-konverterare [SV]
- Konwerter binarnego na ósemkowy [PL]
- Convertitore da binario a ottale [IT]
- Конвертер двоичного в восьмеричное [RU]