ファイルを選択
  1. base64hub
  2. その他の基数
  3. 2進数 → Base64

2進数から Base64 への変換:ビット列を Base64 に

ビット列を貼り付けると Base64 が得られます。01001000 01101001 00100001 は SGkh になります。バイトを空白やカンマで区切るか、長さが 8 の倍数の長いビット列を 1 本で貼り付けてください。

無料 登録不要・制限なし ローカル アップロードなし 更新日 2026/10/27
入力 0バイト 0 B出力 0

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

2進数を Base64 に変換する手順

  1. ビット列を 入力 · 2進数 に貼り付けます。
  2. 入力と同時に 出力 · Base64 に Base64 が表示されます。
  3. 出力の下の パディング(=) で末尾の = を付けたり外したりでき、折り返し を使うと PEM や MIME 用に 64 文字または 76 文字ごとに改行できます。
  4. 出力をコピー または ダウンロード を使います。結果を確かめるには、Base64 → 2進数 で方向を切り替えるか、Base64 から 2進数へ を開いてください。

入力の読み取り方

変換ツールは 2 通りの読み方のどちらかを選びます。

  • グループ分けあり。 ビット列が空白、改行、カンマ、セミコロン、| で区切られていて、どのグループも 8 ビット以下なら、各グループが 1 バイトになります。短いグループも許されるので、1001000 1101001 のような 7 ビットの ASCII は Hi と読まれ、1 0 1 は値が 1、0、1 の 3 バイトになります。
  • 連続。 区切りがない場合や、8 ビットより長いグループがある場合は、すべてのビットをつなげて左から 1 バイトずつ切り分けます。このときは合計が 8 の倍数でなければなりません。

どちらの場合も 0b 接頭辞は読み飛ばします。0、1、区切り文字以外の文字があると、その位置を示して変換が止まります。

例

2進数バイト数Base64
01001000 01101001 001000013SGkh
01001000 011010012SGk=
010010001SA==
01001000011010012SGk=
00000000 00000000 000000003AAAA
11111111 11111111 111111113////

Base64 はビットストリームを 6 ビットずつ読むので、24 ビットごとにちょうど 4 文字になります。すべてゼロならアルファベットの最初の文字 A に、すべて 1 なら最後の文字 / に対応します。出力の長さは 2進数の入力の約 6 分の 1 で、1 バイトあたり入力が 8 ビット、出力が 1.33 文字です。

2進数の文字列が使われる場面

ビット列は、プロトコルの仕様書やデータシート、ビットマスクの定数、記数法の演習問題、1 ビットずつ書き出したテストベクターなどに登場します。同じバイト列を JSON、設定ファイル、HTTP ヘッダーにコンパクトに入れる方法が Base64 です。ビット列がすでに 16進数になっているなら 16進数から Base64 へ のほうが貼り付けるのが楽で、10進数のバイト値なら 10進数から Base64 へ を使ってください。

コードで 2進数を Base64 にする

import base64

bits = "0100100001101001"
data = int(bits, 2).to_bytes(len(bits) // 8, "big")
base64.b64encode(data).decode()       # 'SGk='

int(bits, 2) は先頭のゼロを落としますが、元の長さを指定した to_bytes で元に戻ります。空白区切りのバイトなら、bytes(int(b, 2) for b in s.split()) のほうが簡単です。

const bits = "01001000 01101001";
Buffer.from(bits.split(" ").map(b => parseInt(b, 2))).toString("base64");   // 'SGk='

逆方向の変換とファイルの扱いは、Python と Node.js のページで紹介しています。

よくある問題

  • 「15 ビットはバイト単位で割り切れません」。 メッセージ内のビット数から、どれだけずれているかがわかります。たいていは、切れ目のない文字列の中で 01001000 を 1001000 と書いたように、最初のバイトの先頭のゼロが落ちています。
  • グループ分けした入力から予期しない Base64 が出る。 9 桁以上のグループがないか確認してください。長いグループが 1 つでもあると入力全体が連続モードに切り替わり、バイトの区切りがずれます。
  • 0 の代わりに英字や O がある。 PDF やチャットアプリからコピーしたテキストには、大文字の O などの紛らわしい文字が紛れ込むことがあります。エラーメッセージがその位置を示します。

よくある質問

2進数の文字列を Base64 に変換するには?

ビット列を入力欄に貼り付けます。バイトごとにグループ分けされていれば各グループが 1 バイトになり、切れ目のない 1 本の文字列なら 8 ビットずつに切り分けます。Base64 は入力と同時に表示されます。

ビット列から作った Base64 の末尾に = が付くのはなぜですか?

バイト数が 3 の倍数ではないからです。2 バイト余れば = が 1 つ、1 バイトなら == が付きます。受け取る側がパディングなしの Base64 を求めるなら、パディング(=) のチェックを外してください。

ビット列の長さが 8 の倍数ではありません。どうすればよいですか?

Base64 は完全なバイト単位でエンコードするため、ツールは見つかったビット数を示すメッセージを出して止まります。最初のバイトに足りない先頭のゼロを補うか、文字列を自分でグループに分け、各グループが独立した 1 バイトとして読まれるようにしてください。

バイナリファイルをここで Base64 に変換できますか?

このページが読むのは、テキストとして入力された 0 と 1 です。画像や PDF など実際のファイルをエンコードするには ファイルから Base64 へ を使ってください。