2進数テキスト変換
バイナリとテキストを瞬時に変換します。
バイナリエンコーディングについて
バイナリはコンピューターの基本言語です · 各文字、数字、命令は最終的に0と1の連続として表されます。ASCII標準では、各文字は7ビットのバイナリ値に対応します(通常、先頭に0を付けて8ビットで表示されます)。例えば、「A」の文字は01000001(10進数65)です。
このツールは、人間が読めるテキストとそのバイナリ表現の間で変換します。バイナリ→テキストでは全ASCII範囲(0-127)をサポートし、テキスト→バイナリでは各文字を8ビットのバイナリ等価物に変換します。
文字エンコーディング、文字をビットに変える
バイナリは底層です、その上の層は文字エンコーディングで、文字とシンボルを正確なビットパターンにマップします。Baudot コード(Émile Baudot、1870年に発明、1874年に特許取得)は最初に広く使用されたバイナリテキストエンコーディングで、文字あたり 5 ビット、テレタイプとテレックスネットワークで1世紀以上使用されました。5 ビットは 32 コードのみを与えるので、Baudot はアドレス可能セットを拡張するためにシフト文字(文字用と数字+句読点用)を使用することを強いられました。ASCII(American Standard Code for Information Interchange)は American Standards Association によって1963年6月17日に ANSI X3.4-1963として公開されました。ASCII は 7 ビットを使用して 128 文字をエンコード:制御コード(0-31)、句読点と数字(32-64)、大文字(65-90)、追加の句読点(91-96)、小文字(97-122)、最終句読点(123-127)。7 ビット幅は穴あきテープ電信ハードウェアとの互換性のために選ばれました。ASCII は次の 2 十年間英語圏の支配的なエンコーディングになりました、標準的な改訂ANSI X3.4-1986は本質的に同一で、これが今日の人々が「ASCII」を意味するときに意味するものです。
拡張 ASCII / ISO 8859 ファミリー(ISO 8859-1 は1987年に公開、残りは1990年代を通じて)は 8 ビットバイトの上位 128 文字を地域アルファベットで埋めました:西欧言語のための Latin-1、東欧のための Latin-2、トルコ語のための Latin-5、Cyrillic-1、Greek-1、Arabic-1、Hebrew-1、Thai-1。これは互いに互換性のない 15 の 8 ビットエンコーディングを生成しました:0xE9 は Latin-1 で é、Cyrillic-1 で別の文字、厳密な ASCII で未定義、Mac Roman でまた別の文字を意味しました。この不一致は有名なmojibake(日本語:文字化け、誤ったエンコーディングによる破損したように見えるテキスト)状態を生み出しました。
Unicode プロジェクトはそれに応えて誕生しました。Unicode Consortium は1991年1月3日に法人化、Unicode 1.0 は1991年10月に公開、約 7,000 文字。Unicode 16.0(2024年9月10日公開)では、標準は 168 のスクリプトにわたる 154,998 文字をカバーします。Unicode はコードポイントシステム、各文字に対する一意の数値識別子、しかしバイナリエンコーディングそのものではありません。Unicode のいくつかのエンコーディングが存在します:UTF-32(文字あたり 4 バイト、固定サイズ)、UTF-16(2 または 4 バイト、可変)、現代の Web の支配的なもの:UTF-8。
UTF-8 は1992年9月2日頃にニュージャージーのダイナーのプレースマットで Ken Thompson と Rob Pike によって設計されました、Plan 9 は9月8日までにそれを実行していました。UTF-8 は可変長です:ASCII 文字には 1 バイト(U+0000 から U+007F)、U+0080 から U+07FF には 2 バイト、U+0800 から U+FFFF には 3 バイト、U+10000 から U+10FFFF には 4 バイト。各バイトの上位ビットはマルチバイトシーケンス内の位置を示します(0xxxxxxx = ASCII 1 バイト、110xxxxx = 2 バイトシーケンスの最初のバイト、10xxxxxx = 継続バイトなど)、これは UTF-8 を自己同期にします:任意の位置からデコードを開始し、次のいくつかのバイトを見て次の文字境界を再発見できます。UTF-8 はASCII と後方互換です:すべての ASCII ファイルは有効な UTF-8 ファイルです。2026年、W3Techs はすべての Web ページの約 98.9 % がエンコーディングとして UTF-8 を宣言すると報告します、それは圧倒的に世界のテキストエンコーディングです。
ASCII バイナリ例
8 ビットバイナリ形式での代表的な ASCII 文字のいくつか(ASCII は技術的に 7 ビットだがバイト整列されているので、先頭の 0 付き):
- 'A'(大文字 A)= 10 進 65 =
01000001 - 'a'(小文字 a)= 10 進 97 =
01100001(注意:'A' とちょうど 1 ビット異なる、ビット 5、これが 0x20 との XOR ケース変換トリックが機能する理由) - '0'(数字ゼロ)= 10 進 48 =
00110000 - '9'(数字 9)= 10 進 57 =
00111001 - ' '(スペース)= 10 進 32 =
00100000 - '\n'(改行 / line feed)= 10 進 10 =
00001010 - '!'(感嘆符)= 10 進 33 =
00100001
ASCII の「Hello」は 01001000 01100101 01101100 01101100 01101111 になります、5 バイト、文字あたり 1 つ。各 ASCII 文字も有効な 1 バイト UTF-8 文字なので UTF-8 でも同じです。「Café」は UTF-8 で 01000011 01100001 01100110 11000011 10101001 を与えます、4 文字だが 5 バイト、é(U+00E9)が UTF-8 で 2 バイト(11000011 10101001)を要求するからです。
UTF-8 のマルチバイトエンコーディング、メカニカルに
UTF-8 のエンコーディングルールはバイト位置を示すために正確な上位ビットパターンを使用します。1 バイト(ASCII 範囲 U+0000 から U+007F): 0xxxxxxx、上位ビットは 0、残り 7 ビットがコードポイント。2 バイト(U+0080 から U+07FF): 110xxxxx 10xxxxxx、最初のバイトは 110 で始まる、継続バイトは 10、x ビットが結合して 11 ビットコードポイントを与える。3 バイト(U+0800 から U+FFFF): 1110xxxx 10xxxxxx 10xxxxxx、最初のバイトは 1110 で始まる、2 つの継続バイト、16 ビットコードポイント。4 バイト(U+10000 から U+10FFFF): 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx、絵文字を含む全 Unicode 空間をカバー。ロシア文字 п(U+043F)は UTF-8 で 2 バイト(11010000 10111111)を要求、中国文字 中(U+4E2D)は 3 バイトを要求、絵文字 🎉(U+1F389)は 4 バイトを要求。テキストを UTF-8 バイナリにエンコードすると常に有効なシーケンスを生成します、デコードは継続バイトが正しく 10 プレフィックスを運ぶことを確認することを要求します(そうでない場合、入力は無効な UTF-8 で、デコーダは通常違反シーケンスを置換文字 U+FFFD で置き換えます)。
記法慣習
バイナリテキストはいくつかの慣習で野生に現れます、すべて同じ基礎バイトを指します。スペース区切りバイト:01001000 01100101 01101100 01101100 01101111、最も読みやすい形式、チュートリアルとパズルで一般的。連続スペースなし:0100100001100101011011000110110001101111、よりコンパクト、読者がバイト境界が 8 桁ごとであることを知る必要があります。カンマ区切り:01001000,01100101,01101100,01101100,01101111、CSV エンコードされたテストデータで一般的。16 進ペア(Base16):48 65 6c 6c 6f、同じバイトが 8 つのバイナリ桁ではなく 2 つの 16 進桁で表示される、はるかにコンパクトでプログラマー側ツール(hexdump、16 進エディタ)で一般的。10 進:72 101 108 108 111、各バイトの基礎整数値。このツールはバイナリからテキスト変換のためにスペース、カンマ、または連続区切りのバイナリ入力を受け入れます、テキストからバイナリ変換のためにスペース区切りの 8 ビットバイナリを生成します。
一般的な用途
- コンピュータサイエンス教育。 バイナリ表現は CS101 の基本です、学生は名前をエンコードして読み戻すことで「バイト」が何かを学びます。
- 隠されたメッセージパズル。 エスケープルーム、ジオキャッシング座標、ARG(代替現実ゲーム)ヒント、CTF(キャプチャーザフラッグ)チャレンジ、すべてバイナリエンコードされたテキストを一般的な暗号として使用します、即座に「バイナリ」として認識できますが、変換を読者に要求します。
- ステガノグラフィー。 ノイズのように見えるバイナリにエンコードしてメッセージを公衆に隠す、画像の低位ビットのバイナリ文字列、またはメールの行末スペースに隠す。
- エンコーディング問題のデバッグ。「Café」が「Café」または「€」として「€」の代わりに表示されるとき、バイトは何が起きたかの物語を伝えます、UTF-8 シーケンスが Latin-1 として解釈された、またはその逆。実際のバイナリ表現を見ることはエンコーディング不一致を明白にします。
- フォレンジック分析。 破損したファイル、部分的バックアップ、または損傷したストレージからのテキスト回復はしばしば生のバイトを見て手動でデコードすることを通します。
- 低レベルプログラミング学習。 ビット演算、シフト、マスク構築、すべて値のバイナリ表現を見ると直感的になります。
- バイナリアートとタトゥー。 結婚式の贈り物としてのバイナリの「I love you」、XKCD スタイルの T シャツ、バイナリ数のタトゥー。純粋な 0 と 1 の美学は小さいが実際のサブカルチャーを持っています。
知っておくべきエンコーディングの落とし穴
エンコーディング不一致による Mojibake。 同じバイトシーケンスが、異なるエンコーディングで解釈されると、異なる(そして通常は歪んだ)テキストを生成します。0xE9 は Latin-1 で é ですが、無効な UTF-8 シーケンスの始まりです(あらゆる ≥ 0x80 のバイトは継続バイトかマルチバイトシーケンスの始まりでなければなりません)。UTF-8 ファイルが Latin-1 で開かれると、各マルチバイト UTF-8 文字は 2 〜 4 の歪んだ Latin-1 文字になります、標準的な失敗モード「Café」→「Café」。BOM(バイト順マーク)。 Unicode ファイルの先頭にあるバイト順を示す 2 または 3 バイトシーケンス:UTF-16 little-endian は FF FE で始まる、UTF-16 big-endian は FE FF で、UTF-8 BOM(めったに使用されない、時には「BOM 付き UTF-8」と呼ばれる)は EF BB BF で。BOM は Unicode エンコーディングを区別するのに役立ちますが、UTF-16 と UTF-32 にのみ必須、IETF はファイル先頭で通常のコンテンツを期待するツールを壊すので UTF-8 ファイルにそれを加えることに反対します。エンディアンネスは UTF-16 と UTF-32(マルチバイトコードユニットのバイトを順序付ける)に重要ですが UTF-8 には重要ではありません(バイトストリームとしてエンコード、順序はハードウェアではなく仕様によって固定)。
ASCII参照表
プライバシー、なぜここでもブラウザのみが重要か
バイナリ変換は無害に聞こえますが、変換されたテキストはプライバシーが重要なまさにその種類のものです:友人の間の隠されたメッセージパズル、ステガノグラフィー実験のためにエンコードされた機密フレーズ、エンコーディング問題のためにデバッグされた機微な文字列、または読者がバイナリをプライベート表現として期待するあらゆる場所。このツールは JavaScript を介してブラウザで完全に実行されます、変換中に DevTools の Network タブを確認するか、ロード後にページをオフライン(機内モード)にしても変換器がまだ動作することを確認してください。パズルヒント、デバッグするための機微な文字列、または見知らぬ人のハードドライブにコピーされたくないテキストに安全です。
よくある質問
バイナリ入力の形式は?
スペース区切りの8ビットバイナリ値を入力します(例: 「01001000 01101001」)。ツールは、各バイトが正確に8桁の場合はスペースなしの値や、コンマ区切りの値も受け入れます。
絵文字や非ラテン文字をサポートしていますか?
テキスト→バイナリ方向はあらゆるUnicode文字をサポートします · 各文字はUTF-8エンコーディングで完全なバイナリ表現に展開されます。バイナリ→テキストでは、各8ビットグループはASCIIバイト(0-255)としてデコードされます。
なぜ文字あたり8桁ですか?
8桁のバイナリ(ビット)の各グループは1バイトを表します。ASCIIは7ビット(値0-127)を使用しますが、通常は先頭に0を付けて8ビットで表示されます。1バイトは256の異なる値(0-255)を表すことができ、すべての標準キーボード文字をカバーします。
バイナリは実際どこから来ましたか?
数学的アイデアはコンピュータより 250 年前にあります。Gottfried Wilhelm Leibniz は1703年にバイナリ算術の最初の正式な西洋的記述(「Explication de l'Arithmétique Binaire」)を書きました、部分的に中国の 易経 の卦に触発されました。George Boole の Laws of Thought(1854)はバイナリに代数的基礎(AND、OR、NOT)を与えました。Claude Shannon の MIT 修士論文(1937)はブール代数を電気リレー回路に接続しました、デジタルエレクトロニクスの設立瞬間です。最初の電子バイナリコンピュータは1940年代後半に到来しました(Manchester Baby 1948年6月、EDSAC 1949年5月)。
ASCII と UTF-8 の違いは何ですか?
ASCII(1963)は固定幅 7 ビットエンコーディングで 128 文字をカバーします:基本英語アルファベット、数字、一般的な句読点、制御コード。UTF-8(Thompson + Pike、1992)は全 Unicode 標準(2024年9月の Unicode 16.0 以降約 155,000 文字)の可変長エンコーディングです。UTF-8 は ASCII と後方互換です:あらゆる有効な ASCII バイトシーケンスは有効な UTF-8 でもあります。違いは ASCII 範囲を超えて重要です、é、中、🎉 はすべて UTF-8 で複数のバイトを要求します。2026年、Web ページの約 98.9 % がエンコーディングとして UTF-8 を宣言します(W3Techs)。
私の変換はどこかに送信されますか?
いいえ。変換は JavaScript を介して完全にブラウザで実行されます。貼り付けるテキストとバイナリはネットワークを横断しません、Convert をクリックする間に DevTools の Network タブを確認するか、ロード後にページをオフライン(機内モード)にしてもツールがまだ動作することを確認してください。