上传文件
  1. base64hub
  2. 其他进制编码
  3. 二进制转 Base64

二进制转 Base64 转换器:比特转 Base64

粘贴比特,得到 Base64:01001000 01101001 00100001 会变成 SGkh。字节之间可以用空格或逗号分隔,也可以粘贴一整串长度为 8 的倍数的比特。

免费 无需注册,不限次数 本地 不上传任何内容 更新于 2026年10月27日
输入 0字节 0 B输出 0

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何将二进制转换为 Base64

  1. 把比特粘贴到 输入 · 二进制。
  2. Base64 会随着输入实时显示在 输出 · Base64 中。
  3. 在输出下方,填充(=) 用于添加或去掉末尾的 =,换行 可以每 64 或 76 个字符断行,用于 PEM 或 MIME。
  4. 用 复制输出 或 下载 获取结果。要核对结果,可以用 Base64 → 二进制 切换方向,或打开 Base64 转二进制。

输入是如何读取的

转换器会在两种读法之间做选择:

  • 分组读取。 如果比特被空格、换行、逗号、分号或 | 分开,且没有任何一组超过 8 位,那么每组就是一个字节。允许短于 8 位的组,所以像 1001000 1101001 这样的 7 位 ASCII 会被读作 Hi,而 1 0 1 是值分别为 1、0、1 的三个字节。
  • 连续读取。 如果没有分隔符,或者有任何一组超过 8 位,就把所有比特连在一起,从左开始切成字节。这时总位数必须是 8 的倍数。

两种情况下都会跳过 0b 前缀。遇到 0、1 和分隔符以外的字符时,转换会停止并显示其位置。

示例

二进制字节数Base64
01001000 01101001 001000013SGkh
01001000 011010012SGk=
010010001SA==
01001000011010012SGk=
00000000 00000000 000000003AAAA
11111111 11111111 111111113////

每 24 个比特正好变成四个字符,因为 Base64 每次读取比特流中的 6 位。全零对应字母表的第一个字符 A,全一对应最后一个字符 /。输出长度大约是二进制输入的六分之一:每个字节输入 8 个比特,输出 1.33 个字符。

二进制字符串从哪里来

比特串常见于协议规范和数据手册、位掩码常量、进制练习题,以及逐位写出的测试向量。Base64 则是把同样的字节放进 JSON、配置文件或 HTTP 请求头的紧凑方式。如果你已经有这些比特的 hex 形式,用 Hex 转 Base64 粘贴起来更短;如果是十进制的字节值,请使用 十进制转 Base64。

在代码中将二进制转为 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 位或更多数字。只要有一个长组,整个输入就会切换到连续模式,字节边界随之移动。
  • 用字母或 O 代替了 0。 从 PDF 和聊天应用中复制的文本有时含有大写的 O 或其他形似字符。错误提示会指出其位置。

常见问题

怎么把二进制字符串转换成 Base64?

把比特粘贴到输入框。如果它们按字节分好了组,每组就是一个字节;如果是一整串不间断的比特,就按 8 位一段切开。Base64 会随着输入实时显示。

为什么我的比特转出的 Base64 末尾有 = 号?

因为字节数不是 3 的倍数。两个字节对应一个 =,一个字节对应 ==。如果接收方要求不带填充的 Base64,请取消勾选 填充(=)。

我的比特串长度不是 8 的倍数,怎么办?

Base64 编码的是完整的字节,所以工具会停止并提示它找到了多少个比特。给第一个字节补上缺失的前导零,或者自己把字符串分组,让每组被当作单独的一个字节读取。

能在这里把二进制文件转换成 Base64 吗?

本页读取的是以文本形式输入的 0 和 1。要编码图片、PDF 等真正的文件,请使用 文件转 Base64。