使い方
- テキストを2進数にするには「エンコード」を、2進数をテキストに戻すには「デコード」を選択します。
- テキストや2進数を入力または貼り付けるか、ファイルを開きます。結果は入力に合わせてリアルタイムに更新されます。
- 8 ビットのグループの「区切り文字」を「スペース」「なし」「カンマ」「改行」から選びます。
- テキストが UTF-8 でない場合は「文字コード」を変更し、結果をコピーまたはダウンロードします。
テキストが2進数になる仕組み
コンピューターはテキストをバイト列として保存します。UTF-8 などの文字コードは各文字を 1 バイト以上に対応付け、各バイトは 0~255 の数値になります。この数値を2進数で書くと、最大で 8 桁、つまり 8 ビットになります。このツールは先頭のゼロを省略せず、すべてのバイトを必ず 8 ビットで表記します。そのため、どのグループも同じ幅になり、バイトの境目を推測しなくても2進数コードを元に戻せます。
UTF-8 では、半角の英字、数字、記号はそれぞれ 1 バイトなので、1 文字が 8 ビットのグループ 1 つになります。それ以外の文字はより多くのバイトを使います。é のようなアクセント付きの文字は 2 バイト、ほとんどの漢字やかなは 3 バイト、絵文字は 4 バイトなので、絵文字 1 つは 32 ビットになります。漢字やかなを 1 文字 2 バイトで表すには Shift_JIS を、西ヨーロッパの言語のテキストを 1 文字 1 バイトで表すには ISO-8859-1 または Windows-1252 を「文字コード」メニューで選択してください。
2進数をテキストに戻す
「デコード」モードでは、スペース、カンマ、改行で区切ったビットのグループを貼り付けます。区切られたグループは先頭のゼロを省略してもよいため、7 ビットの ASCII で出力するツールの結果もそのまま使えます。0 と 1 が区切りなしで続く文字列は 8 ビットずつに分割されるため、長さが 8 の倍数である必要があります。それ以外の文字や、11111111(255)より大きいグループがあると、その位置とともにエラーとして表示されます。
得られたバイト列は、選択した文字コードで読み取られます。2進数を作成したときと同じ文字コードを選ぶか、出力を16進数に切り替えて元のバイト列を確認してください。
コードでテキストを2進数に変換する
# Python
' '.join(f'{b:08b}' for b in 'Hi'.encode()) # '01001000 01101001'
bytes(int(g, 2) for g in '01001000 01101001'.split()).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')]
.map(b => b.toString(2).padStart(8, '0')).join(' ') // '01001000 01101001'
仕様
| 使用文字 | 0 1 |
|---|---|
| 出力サイズ | 1 バイトあたり 8 桁(800%) |
| パディング | なし |
| 規格 | 2進数の位取り表記 |
| 大文字と小文字の区別 | なし |
エンコード例
| 入力 (UTF-8) | 出力 |
|---|---|
Hello, World! | 01001000 01100101 01101100 01101100 01101111 00101100 00100000 01010111 01101111 01110010 01101100 01100100 00100001 |
Base64.is | 01000010 01100001 01110011 01100101 00110110 00110100 00101110 01101001 01110011 |
你好 | 11100100 10111101 10100000 11100101 10100101 10111101 |
よくある質問
1 文字は何ビットですか?
ASCII の文字や UTF-8 の英字は 1 文字 1 バイト、つまり 8 ビットです。UTF-8 では、それ以外の文字は 16、24、32 ビットになり、一般的な漢字やかなは 24 ビットです。UTF-16 では、どの文字も最低 16 ビットを使います。
スペースのない2進数をテキストに変換できますか?
はい。文字列が完全な 8 ビットのグループの連続であれば変換できます。先頭のゼロが省略されて 8 桁に満たないグループがある場合は、各バイトの終わりがデコーダーに分かるよう、スペースやカンマで区切ったままにしてください。
テキストを2進数に変換するのは、数値を2進数に変換するのと同じですか?
入力したテキストはどこかにアップロードされますか?
いいえ。変換はすべてブラウザ内で行われるため、変換するテキストやファイルがお使いのデバイスの外に送信されることはありません。