ファイルを選択
  1. base64hub
  2. その他の基数
  3. テキストを2進数に

テキストを2進数に変換:文字を 0 と 1 に

テキストを入力すると、1 バイトごとに 8 ビットのグループで2進数が表示されます。Hi は 01001000 01101001 です。バイト間の区切りはデフォルトでスペースで、カンマ、改行、区切りなしにもワンクリックで切り替えられます。

無料 登録不要・制限なし ローカル アップロードなし 5 種類 区切りなしを含む区切り文字 更新日 2026/10/27
入力 0バイト 0 B出力 0

ブラウザ内で処理されます。このページがデータをどこかに送信することはできません – その根拠

テキストを2進数に変換する方法

  1. 入力 · テキスト にテキストを入力するか貼り付けます。2進数はすぐに 出力 · 2進数 に表示されます。
  2. 出力の下の 区切り文字 で、バイト間に入れるものを設定します。スペース、なし、, 、,、改行から選べます。
  3. 入力の下の 文字コード で、文字をどのバイト列にするかが決まります。デフォルトは UTF-8 で、英語のテキストなら ASCII と同じです。
  4. 結果は 出力をコピー または ダウンロード で保存します。元に戻すには、2進数を 2進数をテキストに に貼り付けるか、2進数 → テキスト の切り替えを使います。

単語を 1 文字ずつ

Hello を2進数にすると 01001000 01100101 01101100 01101100 01101111 です。各グループの由来は次のとおりです。

文字10進数2進数
H7201001000
e10101100101
l10801101100
l10801101100
o11101101111

10進数はその文字の ASCII コードで、2進数は同じ数を 2 進法で書いて 8 桁にゼロ埋めしたものです。H と h(01101000)は左から 3 番目のビットしか違わないことに注目してください。ASCII の大文字と小文字の組はすべてそうなっており、プログラムが 1 回のビット演算で大文字・小文字を切り替えられるのはこのためです。

区切り文字の種類

同じ 2 文字の Hi を、区切り文字 の各設定で表すと次のようになります。

区切り文字出力
スペース01001000 01101001
なし0100100001101001
,01001000, 01101001
,01001000,01101001
改行1 行に 1 バイト

スペース区切りは最も読みやすく、確認もしやすい形です。区切りのない形は、パズルやプロトコル仕様のビット列として必要になりますが、1 桁でも欠けるとそれ以降がすべてずれるので、スペース区切りの控えも残しておいてください。カンマ区切りはコードや表計算のセルに貼り付けられますが、本格的なソースコードなら Base64 をバイト配列に が正しい配列リテラルを書き出します。

ASCII 以外の文字

英語の普通の文字、数字、記号は 1 文字 1 バイトです。それ以外は UTF-8 ではより長くなり、変換ツールはすべてのバイトを書き出します。

テキストバイト数2進数(UTF-8)
ñ211000011 10110001
中311100100 10111000 10101101
🙂411110000 10011111 10011001 10000010

文字コード を切り替えると、ビットもそれに応じて変わります。UTF-16LE では Hi が 01001000 00000000 01101001 00000000 となり、1 文字 2 バイトで、2 バイト目がゼロになります。同じテキストなのに他人の2進数と一致しない場合は、何よりも先に文字コードを比べてください。

テキスト、2進数、Base64

2進数はバイトを最も文字どおりに書き表す方法で、最も長くなる方法でもあります。1 バイトにつき 8 文字に加えて区切り文字が入ります。Base64 は同じバイト列を 1 バイトあたり約 1.33 文字で書くため、テキスト形式の中でファイルや鍵を運ぶのに使われます。Hi は Base64 では SGk= で、テキストを Base64 に で直接作れます。8 ビットのグループが Base64 の使う 6 ビットの単位に組み直される様子を見るには、Base64 を2進数に で変換し、Base64 の仕組み を読んでみてください。

コードでテキストを2進数に

" ".join(f"{b:08b}" for b in "Hi".encode("utf-8"))   # '01001000 01101001'
Array.from(new TextEncoder().encode("Hi"),
  b => b.toString(2).padStart(8, "0")).join(" ");      // '01001000 01101001'

08b の書式と padStart(8, "0") が先頭のゼロを補います。これがないと H は 1001000 になり、グループの桁が揃わなくなります。文字列とバイト列の扱いについては Python と JavaScript のページで詳しく解説しています。

よくある質問

「hello」は2進数でどうなりますか?

01101000 01100101 01101100 01101100 01101111 です。先頭を大文字にした Hello では、最初のグループだけが 01001000 に変わります。

自分の名前を2進数で書くには?

入力欄に名前を入力して、出力をコピーします。1 文字が 8 桁になります。姓と名の間のスペースは 00100000 です。

1 文字がちょうど 8 桁になるのはなぜですか?

コンピューターはテキストをバイト単位で保存し、1 バイトは 8 ビットだからです。変換ツールはすべてのバイトを先頭のゼロで埋めるので、A(65)は 1000001 ではなく 01000001 と書かれます。

16 ビットや 32 ビットになる文字があるのはなぜですか?

UTF-8 で 2 バイト以上必要な文字だからです。ñ は 2 バイト、中 は 3 バイト、絵文字は 4 バイトです。UTF-16 では普通の英字でも 2 バイトになります。