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

二进制转文本翻译器:解码 0 和 1

粘贴 01001000 01101001 这样的二进制代码,即可作为文本阅读(这一串就是 Hi)。每 8 位一组读作一个字节;空格、逗号、0b 前缀和一整串不间断的比特都可以。

免费 无需注册,不限次数 本地 不上传任何内容 7 位 ASCII 分组同样可以读取 更新于 2026年10月27日
输入 0字节 0 B输出 0

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

如何把二进制翻译成文本

  1. 把二进制粘贴到 输入 · 二进制。字节之间可以用空格、换行、逗号、分号或 | 分隔,也可以完全不分隔。
  2. 文本会随着输入实时显示在 输出 · 文本 中。
  3. 如果看到 �,说明这些比特不是有效的 UTF-8。请在输出下方换一个 字符集 试试,例如 ISO-8859-1。
  4. 复制输出 复制文本。工具上方的 文本 → 二进制 可以切换方向,也可以使用 文本转二进制。

如何手动读懂二进制

每 8 位一组是一个字节。从左到右给每一位赋值,最左边是 128,依次减半到最右边的 1,再把为 1 的位的值加起来:

位01001000
值1286432168421

01001000 是 64 + 8 = 72,ASCII 中的第 72 个字符是 H。01101001 是 64 + 32 + 8 + 1 = 105,即 i。

对于字母,你很少需要真的去算,因为 ASCII 的排列是有规律的。前三位表示字符的种类,对于字母,后五位就是它在字母表中的位置:

开头含义示例
010大写字母01000001 A、01001000 H、01011010 Z
011小写字母01100001 a、01101001 i、01111010 z
0011数字00110000 0、00111001 9
00100000空格

所以 01000011 以 00011 结尾,也就是 3,第三个字母:C。大写和小写只差一位,即左数第三位。

翻译器接受的格式

输入读取方式
01001000 01101001用空格或换行分隔的 8 位分组
01001000,01101001 或 01001000;01101001用逗号、分号或 | 作分隔符
0b01001000 0b01101001忽略 0b 前缀
1001000 11010017 位分组,常见于经典的 7 位 ASCII 练习
0100100001101001一整串比特,切成 8 位一段

它们解码后都是 Hi。短于 8 位的分组也读作一个字节,所以 7 位版本也能用。如果有任何一组超过 8 位,工具会把所有比特连成一个字符串,再切成字节。遇到 0、1 和分隔符以外的字符时,转换会停止并显示出错字符的位置;点击提示旁边的 显示 按钮,即可在输入中选中它。

不是纯 ASCII 的二进制

ASCII 字节总是以 0 开头。以 1 开头的字节属于一个多字节的 UTF-8 字符,它的前几位表示这个序列有多长:

字符UTF-8 比特规律
é11000011 10101001110 开始一个 2 字节字符,10 表示后续字节
€11100010 10000010 101011001110 开始一个 3 字节字符
👋11110000 10011111 10010001 1000101111110 开始一个 4 字节字符

如果逐字节解码,你会得到 é 这样的乱码。请让这些字节保持在一起,并把 字符集 保持为 UTF-8。

从二进制到 Base64

二进制、hex 和 Base64 都是书写同一批字节的不同方式。二进制每个字节用 8 个字符,hex 用 2 个,Base64 约 1.33 个,所以各种系统都用 Base64 在文本中传输二进制数据:邮件附件、JSON 字段、data URI。要把比特直接转成 Base64,请使用 二进制转 Base64。要查看 Base64 字符串中的比特,请使用 Base64 转二进制;Base64 的工作原理 展示了它如何把这些比特重新按 6 位一组划分。

在代码中将二进制转为文本

bits = "01001000 01101001"
bytes(int(b, 2) for b in bits.split()).decode("utf-8")   # 'Hi'
const bits = "01001000 01101001";
new TextDecoder().decode(Uint8Array.from(bits.split(" "), b => parseInt(b, 2)));   // 'Hi'

这两段代码都假设分组之间只隔一个空格;上面的工具对输入格式要宽容得多。

常见问题

01001001 00100000 01101100 01101111 01110110 01100101 00100000 01111001 01101111 01110101 是什么意思?

I love you。每个 8 位分组是一个 ASCII 字符,00100000 是单词之间的空格。

一个字母要用几个二进制位表示?

在纯 ASCII 文本中,任何字母或数字都是八位,即一个字节。在 UTF-8 中,重音字母占 16 位,大多数其他文字占 16 或 24 位,Emoji 占 32 位。

没有空格的二进制能翻译吗?

能。像 0100100001101001 这样的连续字符串会从左开始切成 8 位一段。它的长度必须是 8 的倍数,否则工具会提示找到了多少个比特。

为什么我的二进制翻译出来是乱码?

通常是在没有空格的字符串中少了或多了一个比特,导致后面的每个字节都错位了。如果可以,在字节之间加上空格;这样一个出错的分组只会影响一个字符,其余部分仍能正确读取。