∞ConvertForever

2進数変換ツール

テキストを2進数コードに、2進数を読めるテキストに、入力しながらリアルタイムで変換します。

ツールを読み込み中…

この2進数変換ツールは、普通のテキストを2進数コードに変換し、2進数をテキストにデコードします。入力しながらリアルタイムで更新されます。「hi」と書けば 01101000 01101001 に変わる様子が見え、パズルやTシャツにある0と1の羅列を貼り付ければ、その意味が分かります。

各文字はそのコードポイントで表され、8ビットのまとまりで表示されます。基本的な英字なら標準ASCIIになり、大文字のAは01000001、小文字のaは01100001です。これはコンピューターが実際にテキストを保存する仕組みそのものなので、文字エンコードの動きを教えたり学んだりする実践的な題材になり、情報科目の課題・脱出ゲームの手がかり・ジオキャッシングのパズルの定番でもあります。

すべてサーバーを介さずブラウザ内で動作するため、瞬時で非公開、ページを読み込めばオフラインでも使えます。

2進数変換ツール

2進数を変換する手順

  1. 方向を選びます。テキスト→2進数、または2進数→テキストです。
  2. 入力欄に打ち込むか貼り付けます。
  3. 入力すると同時に、出力欄に変換結果が即座に表示されます。
  4. 2進数を入力する場合は、0と1を8ビットのまとまりに保ちます。バイト間のスペースは問題ありません。
  5. コピーをクリックして結果を取得します。

テキストが2進数になる仕組み

コンピューターは数字しか保存しないため、すべての文字に数字が1つ割り当てられます。ASCIIではAが65で、これは2進数で1000001、8ビットのバイトに揃えると01000001です。文字列はそれらのバイトを並べただけのものです。デコードはその逆で、ストリームを8個ずつのまとまりに分け、各まとまりを数字に変換して、その文字を引きます。

é・絵文字・アラビア文字など基本ASCIIを超える文字はUTF-8でエンコードされ、1文字につき2〜4バイトを使います。そのため画面上の1つの記号が正当に複数の8ビットのまとまりに変換されることがあります。これはエラーではありません。

2進数変換ツールがすること

このツールは、人が読めるテキストとその2進数表現との間を双方向に変換します。一方向では、テキストの各文字を取り出し、その数値のコードポイントを調べ、その数字をビットのまとまりとして2進数で書き出します。もう一方向では、0と1のまとまりを読み取り、それぞれを数字に戻し、その数字が表す文字へと変換します。

これは暗号ではなく変換だと理解することが大切です。2進数は、コンピューターがすでに使っている同じ文字コードを別の形で書いただけのものであり、何も隠さず、何も守りません。だからこそ、このツールはセキュリティの道具ではなく、学習やパズルの補助であり、出力を誰でも完全に元へ戻せるのはそのためです。

ブラウザ内で動く仕組み

すべての変換は、入力と同時にお使いの端末のJavaScript上で行われます。キー入力から結果までの間にサーバーへの呼び出しがないため、出力が即座に更新され、いったんページを読み込めば接続が切れても動き続けます。

処理をローカルで行うということは、課題の文字列でもパズルの手がかりでも私的なメモでも、貼り付けたものはすべてお使いの端末に留まり、アップロードもログ記録もされないということです。学習ツールにとってこれは主に利便性の話ですが、同じプライバシー優先の設計が、当サイトのすべての変換ツールを支えています。

ASCII・Unicode・UTF-8をやさしく説明

ASCIIは、0から127までの数字を英字・数字・一般的な記号に割り当てる元祖の方式で、それぞれが1つの8ビットのバイトに無理なく収まります。だからこそ、普通の英語テキストは1文字につききれいな8桁のまとまりを1つ生み、先頭の0はパディングになります。大文字のAは01000001、小文字のaは01100001、スペースは00100000です。

Unicodeはその考え方をあらゆる文字体系や絵文字にまで広げたもので、UTF-8はそうした大きなコードポイントをバイトへ詰め込む方式です。UTF-8はASCII文字には1バイト、それ以外には2・3・4バイトを使います。そのため、アクセント付きの文字や絵文字は正当に複数の8ビットのまとまりになります。このツールは、そうしたマルチバイト列も正しくエンコードおよびデコードします。

楽しく実用的な使い道

このツールは学習と遊びで真価を発揮します。学生に、自分が打った文字がコンピューターが実際に保存するビットへどう変わるのかを、具体的に手を動かして見せられるので、抽象的な話がすっと腑に落ちます。また、脱出ゲーム・ジオキャッシング・CTF(Capture The Flag)の課題や、プログラマー向けのTシャツやマグカップに印字された2進数のスローガンの定番でもあります。

開発者にとっては日常の主力ではなく、ちょっとした確認用です。短い2進数列をデコードして文字コードを確かめたり、単語をエンコードしてパズルやテスト用データに埋め込んだりする用途です。実際の2進データをシステム内で受け渡すなら普通は16進数やBase64を使いますが、ビットが何を意味するかを理解するには、素の0と1のほうが分かりやすいものです。

2進数をデコードするときのよくある失敗

出力が文字化けする一番の原因は、ちょうど8桁になっていないまとまりです。バイトは8桁の固定ブロックで読み取られるため、ビットが1つ欠けたり余ったりすると、それ以降のバイトがすべてずれ、残りのメッセージが意味不明になります。各まとまりの桁数を数えましょう。バイト間のスペースは問題なく、むしろ入力を確認しやすくしてくれることが多いです。

2つ目は、そもそも2進数エンコードされたテキストでないものを与えてしまう場合です。0と1以外の余計な文字が混じっていたり、もともとテキストでなかった任意のバイナリファイルのダンプだったりする場合です。入力に文字や記号が含まれるなら、それはおそらく16進数やBase64が化けたものであり、2進数テキストとしてデコードしても読めるものにはなりません。

2進数と16進数・Base64の比較

この3つはいずれも、同じ根底のバイトを別の形で書いたものにすぎず、読みやすさとコンパクトさを引き換えにしています。2進数は各ビットを1桁ずつ、位置ごとに0か1で示すので、教えるには最も分かりやすい一方、書くには最も長くなります。16進数は4ビットを1記号に詰めるので、1バイトは16進数2桁になり、開発者が常に使う釣り合いの取れた表現です。Base64は6ビットを1文字に詰めるので、データをテキストとして運ぶには3つの中で最もコンパクトです。

どれを見ているかが分かれば混乱を避けられます。0と1だけの長い文字列は2進数、0〜9とa〜fからなる短い文字列は16進数、英字・数字・+・/が混在する(末尾が=で終わることが多い)ものはBase64です。あなたの「2進数」に0と1以外が含まれるなら、実際に必要なのは当サイトのBase64ツールや16進数表示であり、それらもこの変換ツールと同じくクライアント側で動作します。

よくある質問

この2進数変換ツールは無料ですか?

はい、回数制限も登録もなく完全無料です。テキストでも2進数でも好きなだけ変換できます。

なぜ各文字が8桁なのですか?

コンピューターはビットを8ビットのバイトにまとめ、1バイトで1つのASCII文字を保持するからです。先頭の0はバイト全体を見えるようにするパディングで、Aは純粋な2進数で1000001、表記上は01000001となります。

2進数が読める文字にデコードされないのはなぜですか?

各まとまりがちょうど8桁で、0と1だけで構成されているか確認してください。桁が1つ欠けると後続のバイトがすべてずれ、メッセージ全体が意味不明になります。また、それが2進数エンコードされたテキストであり、バイナリファイルのダンプなどでないことも確認してください。

絵文字や英語以外の文字にも対応していますか?

はい。UTF-8でエンコードされるため、絵文字1つは4バイト(32桁)になります。マルチバイト列も正しくデコードして戻します。

2進数はBase64や16進数と同じですか?

いいえ。いずれも異なる表現です。2進数は生のビットを示し、16進数は1記号に4ビット、Base64は6ビットを詰め込みます。あなたの「2進数」に文字や記号が含まれるなら、当サイトのBase64や16進数のツールが必要かもしれません。

スマホでも使えますか?

はい、どのモバイルブラウザでも動作します。長い2進数をタッチキーボードで打つのは面倒なので、貼り付けが便利です。

関連ツール

このツールをあなたのサイトに設置

どんなウェブサイトやブログにも無料で埋め込めます。下のコードをコピーしてください。ここと同じようにツールが読み込まれ、訪問者のブラウザ内で引き続きプライベートに動作します。