テキストを2進数に変換するツールとは?
このツールは、ASCII(American Standard Code for Information Interchange:情報交換用米国標準コード)規格を使って、普通のテキストを2進数に変換します。キーボード上のすべての文字は、基本ASCIIでは0〜127の数値に対応しています。このツールは、各文字を取り出してそのASCIIコードを調べ、それを2進数(基数2)に変換し、ちょうど8ビット(1バイト)になるように桁を揃えます。出力されるのは、コンピューターが内部で保存・送信しているのとまったく同じ2進数です。
使い方
入力欄に任意のテキストを入力するか貼り付けて、実行ボタンを押すだけです。結果は3通りの形式で表示されます。8ビットのバイトごとに区切った2進数(もっとも読みやすい形式)、区切りのない連続した2進数、そしてその元になっている10進数のASCIIコードです。ASCIIは国際的なコンピューティング標準なので、このツールは特定の国や地域に依存せず、どこでも共通して使えます。
計算の仕組み
各文字 \(c\) について、まず \(\operatorname{ASCII}(c)\) を求め、それを2進数で表し、8桁になるまで左側に0を補います。全体の処理は次の式で表せます。
$$\text{Binary} = \bigl\Vert_{i=1}^{n}\ \operatorname{pad}_{8}\!\left(\operatorname{bin}\!\left(\operatorname{ASCII}\!\left(\text{Text}_{i}\right)\right)\right)$$たとえば文字「A」のASCIIコードは65です。65を2進数にすると \(1000001\) となり7桁なので、0を補って \(01000001\) とします。すべての文字のバイトをつなぎ合わせると、完全な2進数文字列ができあがります。
具体例
「Hi」という単語を例にしましょう。「H」= ASCII 72 = \(1001000\)、「i」= ASCII 105 = \(1101001\)。それぞれ8ビットに揃えると \(01001000\) と \(01101001\) になります。スペース区切りの出力は 01001000 01101001、連続した出力は 0100100001101001 です。
ASCII文字からバイナリへの参照テーブル
標準キーボード上のすべての文字は、0から127の範囲のASCII10進数コードにマッピングされ、そのコードは8ビットのバイナリとして格納されます。以下の表は、共通の印字可能文字とそれらの10進数コード、および パディングされた8ビットのバイナリ値をリストしています。例えば、文字Aは10進数65で、バイナリでは01000001です。
| 文字 | 10進数(ASCII) | 8ビットバイナリ |
|---|---|---|
| (スペース) | 32 | 00100000 |
| ! | 33 | 00100001 |
| " | 34 | 00100010 |
| # | 35 | 00100011 |
| $ | 36 | 00100100 |
| % | 37 | 00100101 |
| & | 38 | 00100110 |
| ' | 39 | 00100111 |
| ( | 40 | 00101000 |
| ) | 41 | 00101001 |
| * | 42 | 00101010 |
| + | 43 | 00101011 |
| , | 44 | 00101100 |
| - | 45 | 00101101 |
| . | 46 | 00101110 |
| / | 47 | 00101111 |
| 0 | 48 | 00110000 |
| 1 | 49 | 00110001 |
| 2 | 50 | 00110010 |
| 3 | 51 | 00110011 |
| 4 | 52 | 00110100 |
| 5 | 53 | 00110101 |
| 6 | 54 | 00110110 |
| 7 | 55 | 00110111 |
| 8 | 56 | 00111000 |
| 9 | 57 | 00111001 |
| : | 58 | 00111010 |
| ; | 59 | 00111011 |
| ? | 63 | 00111111 |
| @ | 64 | 01000000 |
| A | 65 | 01000001 |
| B | 66 | 01000010 |
| C | 67 | 01000011 |
| M | 77 | 01001101 |
| Z | 90 | 01011010 |
| a | 97 | 01100001 |
| b | 98 | 01100010 |
| c | 99 | 01100011 |
| m | 109 | 01101101 |
| z | 122 | 01111010 |
単語全体を検証するには、テキストHiは01001000 01101001になります。
テキストをバイナリに手動で変換する方法
テキストをバイナリに変換することは、各文字をその8ビットのASCII表現に変換することを意味します。文字列内のすべての文字について、左から右の順序で、これらの手順に従ってください。
- 一度に1文字ずつ取り出します。テキストを左から右に処理し、各文字は独立に変換され、結果は結合されます。
- ASCII10進数コードを見つけます。ASCIIテーブルで文字を検索します。例えば、大文字Kは10進数コード75を持ちます。
- 2による繰り返し除算により、10進数を2進法に変換します。数値を2で除算し、余りを記録してから、0に到達するまで商で繰り返します。下から上に余りを読み込みます。
75の場合:75 ÷ 2 = 37 余り 1;37 ÷ 2 = 18 余り 1;18 ÷ 2 = 9 余り 0;9 ÷ 2 = 4 余り 1;4 ÷ 2 = 2 余り 0;2 ÷ 2 = 1 余り 0;1 ÷ 2 = 0 余り 1。余りを上に読み込むと1001011が得られます。 - 左に0を埋めて8ビットにします。1バイトは常に8ビットなので、先頭のゼロを追加します:1001011は01001011になります。
- バイトを順番に連結します。すべての8ビットグループを結合します。連続した出力の場合はスペースなしで書き込み、読みやすい出力の場合は各バイト間に単一のスペースを挿入します。
実例 — 単語「Hey」:
- H = 72 = 01001000
- e = 101 = 01100101
- y = 121 = 01111001
スペース区切り結果:01001000 01100101 01111001。単一バイトの逆方向確認として、バイナリ01001000は10進数72に変換され、これはHのASCIIコードです。
主要用語の説明
- ASCII
- American Standard Code for Information Interchange(米国情報交換標準符号)。文字、数字、句読点、制御文字に0から127の範囲の数値コードを割り当てる、文字エンコーディング標準です。
- ビット
- デジタルデータの最小単位で、0または1のいずれかの単一のバイナリ値を保持します。
- バイト
- 8ビットのグループ。1バイトは256の異なる値(0~255)を表すことができ、これは任意の標準またはExtended ASCIIの文字を保持するのに十分です。
- バイナリ(2進法)
- 0と1の数字のみを使用する数値システム。各位置は2の累乗(1、2、4、8、16、...)を表すので、バイト01000001は64 + 1 = 65に等しくなります。
- 7ビット対8ビット
- 元のASCIIはコード0~127をカバーするのに7ビットのみが必要です。現代的なシステムでは、各文字は完全な8ビットバイトに格納され、標準ASCII文字に対して追加の先頭ビットが0に設定されます。
- パディング/先頭ゼロ
- すべてのバイトが正確に8ビット長になるように、バイナリ数値の前に追加されるゼロ。例えば、コード5は単なる101ではなく00000101になり、すべてのバイトが整列され続けます。
- 連続出力対スペース区切り出力
- 連続出力はすべてのバイトを区切り文字なしで結合します(例:0100100001101001)。一方、スペース区切り出力は各バイト間にスペースを挿入します(例:01001000 01101001)。これにより読みやすく、デコードしやすくなります。
- 10進数コード
- ASCIIによって文字に割り当てられた10進法の数値。例えばAの場合は65です。これは文字とその2進形式の間の中間値です。
- Extended ASCII(コード128~255)
- 8番目のビットを使用して別の128文字を追加する拡張。アクセント付き文字やボックス描画シンボルなどが含まれます。これらのエンコーディングはコードページによって異なるため、同じコードがシステム全体で異なる方法で表示される可能性があります。
よくある質問
なぜ1文字あたり8ビットなのですか? 1バイトは8ビットで、標準ASCIIは7ビットに収まります。8ビットに揃えることですべての文字の幅が同じになり、データの保存方法とも一致します。
スペースや記号にも対応していますか? はい。スペースはASCII 32(\(00100000\))で、印字可能なすべての記号にもコードが割り当てられています。
絵文字やアクセント付きの文字はどうなりますか? コード127を超える文字は基本ASCIIの範囲外です。このツールは各文字の数値コードをそのまま使うため、標準的な英文テキストでもっとも正確に動作します。