理解二进制:计算机如何表示文本
在最底层,世界上每台计算机都说同一种语言:二进制。无论你是在写邮件、看照片还是玩游戏,底层数据都以 0 和 1 的序列存储。在这篇指南中,我们将探索二进制的工作原理以及文本如何以二进制形式表示。
什么是二进制?
二进制是一种只使用两个数字的基数为 2 的数制:0 和 1。这与我们日常生活中使用的十进制(基数为 10)不同,后者有从 0 到 9 共十个数字。计算机使用二进制是因为其基本组件——晶体管——有两个状态:开(1)和关(0)。
每个 0 或 1 称为一个比特(bit),八个比特组成一个字节(byte)。一个字节可以表示 256 个不同的值(从 00000000 到 11111111),足以编码基本文本中使用的所有字母、数字和符号。
ASCII 编码
为了用二进制表示文本,计算机需要在字符和数字之间建立映射。最有影响力的早期标准是 ASCII(美国信息交换标准代码),于 1963 年发布。
ASCII 为每个字符分配一个 0 到 127 之间的数字:
- 0–31:控制字符(如换行、制表符和转义)
- 32–47:标点符号(空格、
!、"、#等) - 48–57:数字
0到9 - 65–90:大写字母
A到Z - 97–122:小写字母
a到z
例如,字母 A 的十进制值是 65,二进制是 01000001。字母 a 是 97,即 01100001。
文本如何以二进制存储
当你输入”Hi”时,计算机看到的不是字母——而是两个字节:
H→ 72 →01001000i→ 105 →01101001
所以”Hi”被存储为 01001000 01101001。当你保存文本文件时,这些字节按顺序写入磁盘。当你打开文件时,软件读取字节并使用字符编码显示原始字母。
超越 ASCII:Unicode 和 UTF-8
ASCII 对英语很适用,但只覆盖 128 个字符。为了支持中文、阿拉伯文和表情符号等语言,现代系统使用 Unicode——一个更大的标准,可以表示超过一百万个字符。
UTF-8 是 Web 上最常见的 Unicode 编码。它与 ASCII 向后兼容:前 128 个字符使用相同的单字节表示,而其他字符使用两到四个字节。这种设计使 UTF-8 对英语文本高效,同时仍支持所有语言。
在文本和二进制之间转换
手动将文本转换为二进制很简单但很繁琐:查找每个字符的 ASCII 值,然后将该十进制数转换为 8 位二进制。将二进制转换回文本则反向操作——将比特分组为字节,将每个字节转换为十进制,然后查找字符。
对于超过几个字符的内容,在线转换器要快得多,也更不容易出错。
使用 TextKit 的二进制转换器
TextKit 提供免费的 二进制转换器,可即时处理双向转换:
- 文本转二进制:在输入框中输入或粘贴文本。工具将每个字符转换为其 8 位二进制表示,字节之间用空格分隔以便阅读。
- 二进制转文本:粘贴二进制字符串(带或不带空格),工具将其解码回可读文本。
- 一键复制结果。
转换器完全在浏览器中运行,页面加载后即可离线使用,并保护你的数据隐私。
二进制转换的实际用途
- 学习计算机科学:了解字符如何映射到比特
- 调试:排查编码问题时检查原始字节值
- 密码学谜题:许多 CTF 挑战涉及二进制编码的消息
- 教育项目:演示计算机如何存储文本
- 趣味实验:用二进制编码秘密消息并与朋友分享
使用二进制的技巧
- 将比特分组为字节:始终以 8 位为一组操作,避免错位。
- 注意编码不匹配:如果二进制解码出乱码,原始文本可能使用了与 ASCII 不同的编码。
- 使用空格提高可读性:手动分享二进制时,在字节之间加空格。
- 记住大小写敏感:大写和小写字母有不同的二进制值。
准备好用二进制查看你的文本了吗?试试 TextKit 免费的 二进制转换器——粘贴文本,即时获得结果。