テキストを8進数に変換
8進数は16進数の忘れられた親戚で、各桁がちょうど3ビットを表す基数8の記数法です。Unixのファイル権限(755、644)は8進数で書かれ、すべての文字は10進数や16進数と同じように8進数コードを持ちます。テキストを貼り付けると、この変換ツールが各バイトの8進数コードを返します。スペースで区切った8進数コードを貼り付ければ、元のテキストに戻せます。
テキストを8進数に変換する方法
-
1
テキストを入力する
通常の文字。ASCII以外の入力にはUTF-8エンコーディングを前提とします。
-
2
各バイトが1つの8進数コードになる
`A` = 10進数の65 = 8進数の`101`。`Z` = 90 = `132`。スペース = 32 = `40`。
-
3
コードはスペースで区切られる
バイトのコードは半角スペース1つでつながれます(`Hi`は`110 151`になります)。先頭のゼロは付きません。
-
4
8進数を貼り付けて復号する
「8進数 → テキスト」に切り替え、スペースで区切った8進数の値を貼り付けます。0から255までの各値が1バイトになります。
8進数の簡単な例
| 文字 | 10進数 | 8進数 | 2進数 |
|---|---|---|---|
| A | 65 | 101 | 1000001 |
| a | 97 | 141 | 1100001 |
| 0 | 48 | 60 | 0110000 |
| スペース | 32 | 40 | 0100000 |
| \n | 10 | 12 | 0001010 |
8進数が今も重要な理由
ほとんどの現代のシステムは16進数を好みます。16進数2桁がちょうど1バイトにきれいに対応するからです。それでも8進数はいくつかの場面で残っています。
- Unixのファイル権限:
chmod 755は所有者 = 7(rwx)、グループ = 5(r-x)、その他 = 5(r-x)を意味します。各桁が3つの権限ビットを表します。 - C/Pythonのエスケープシーケンス:文字列リテラル内の
\101はAです。C言語の整数リテラルの先頭のゼロ(int x = 0755)は8進数として解釈され、よく知られた落とし穴です。 - 組み込みシステムやレトロシステム:古い12ビット、18ビット、36ビットのアーキテクチャは8進数とよく合っていました。
- umask値:
umask 022は既定のファイル権限マスクを755に設定します。
ファイル権限の表
| 8進数の桁 | 権限 | 2進数 |
|---|---|---|
| 0 | --- | 000 |
| 1 | --x | 001 |
| 2 | -w- | 010 |
| 3 | -wx | 011 |
| 4 | r-- | 100 |
| 5 | r-x | 101 |
| 6 | rw- | 110 |
| 7 | rwx | 111 |
つまりchmod 644は所有者 rw-、グループ r--、その他 r--で、読み取り可能なテキストファイルの既定値です。
落とし穴
- C言語では先頭のゼロが重要です。
int a = 010;はaを10ではなく8に設定します。Python 3ではこれが廃止されたので、常に0o10を使ってください。 - 8進数は0〜7の数字だけを使います。
8と9は8進数では無効です。これらが見えたら、その元データは8進数ではありません。 - Unicodeのバイトは8進数で大きくなります。UTF-8の絵文字(4バイト)は3桁の8進数コード4つ、つまり12文字になります。16進数なら8文字です。表示用途のほとんどでは16進数が有利です。
よくある質問
ほとんどの場合は使いません。Unixの権限や\NNN形式を使うC文字列のエスケープを扱うときくらいです。16進数のほうがコンパクトで、バイト単位で読みやすいです。
各8進数の桁が3つの権限ビット(読み取り、書き込み、実行)にちょうど対応するからです。この表記は1971年にAT&T Unixに組み込まれて以来ずっと使われており、基盤となるビットパターンにうまく対応します。
はい。「8進数 → テキスト」に切り替え、スペースで区切った8進数の値(例:110 151)を貼り付けてください。0から255までの各値が1バイトに戻るため、マルチバイトのUTF-8文字も個々のバイトコードから復号できます。
テキストは変換を行うためだけに当社のサーバーへ送信され、保存もログ記録もされません。
関連ツール
アナグラムジェネレーター
短い語を入力すると、重複した並べ替えを除き、表示件数を調整しながら文字の一意な並べ替えを確認できます。
キャラクター名ジェネレーター
小説、ゲーム、RPGなどのキャラクター名を生成します。ファンタジー、SF、現代から選び、5〜30個の名前を設定すると、すぐに使える名前が手に入ります。
都市名ジェネレーター
世界観づくり、地図、ゲーム、物語、モックデータ向けに、架空の都市、町、村、首都の名前を生成し、各結果に短いメモを添えます。
丸付きテキストジェネレーター
プレーンテキストを丸で囲まれた Unicode 文字に変換します。ソーシャル略歴、チャット、ドキュメントの輪郭、塗りつぶし、丸数字のバリエーション。
カンマから改行へ
カンマ区切りのテキストを1行に1つの項目に変換したり、行をカンマ区切りの文字列にまとめたりできます。
以下記号(≤)
≤ 記号と関連する数学の比較記号をコピーできます。スプレッドシート、論文、ウェブページ向けに Unicode、HTML エンティティ、LaTeX 記法を掲載しています。
このツールは他の言語でも利用できます
- ข้อความเป็นเลขฐานแปด [TH]
- النص إلى النظام الثماني [AR]
- Tekst naar octaal [NL]
- Text till oktal [SV]
- Texte en octal [FR]
- Tekst na ósemkowy [PL]
- Teks ke Oktal [ID]
- Texto para Octal [PT]
- Text zu Oktal [DE]
- Texto a Octal [ES]
- 텍스트를 8진수로 [KO]
- Văn bản sang bát phân [VI]
- Text to Octal [EN]
- Testo in ottale [IT]
- Текст в восьмеричную систему [RU]
- Metinden Sekizliye [TR]
- 文本转八进制 [ZH]