二进制与字符编码完全指南

一切从逻辑电路说起

计算机由逻辑电路组成,逻辑电路只有两种状态:

这两种状态用数字 01 来表示,这就是二进制的本质。


二进制如何表示更多信息

每个位置只能是 01,增加位置数量就能表示更多状态:

位数 组合数 能表示的范围
1 位 2¹ = 2 0、1
2 位 2² = 4 00、01、10、11
8 位 2⁸ = 256 0 ~ 255

8 位二进制也称为一个字节(BYTE),是计算机存储的基本单位。


存储单位换算

单位 换算
1 BYTE(字节) = 8 BIT
1 KB(千字节) = 1024 BYTE
1 MB(兆字节) = 1024 KB
1 GB(吉字节) = 1024 MB
1 TB(太字节) = 1024 GB

1024 正好是 2¹⁰,这也是为什么计算机中使用二进制换算。


字符编码的演进

ASCII 码表

最早的字符编码标准,使用 8 位(1 字节) 表示 128 种符号(0~127)。

  • 英文字母 A 的十进制值是 65,二进制为 1000001
  • 数字 0 的十进制值是 48,二进制为 0110000

ASCII 只覆盖了英文字母和少量符号,无法表示中文和其他语言。

中文编码的发展

编码标准 年代 字符数 说明
GB2312 80 年代 7,445 最早的中文编码,支持简体中文
GBK 90 年代 20,000+ 支持简体和繁体中文
GB18030 2000 年 27,484 支持简体、繁体、维吾尔文、藏文等

GB18030 中每个字符由 1、2 或 4 个字节组成。

Unicode — 全球统一编码

为了解决不同编码互不兼容的问题,Unicode 应运而生。

Unicode 规定每个字符对应一个唯一的数字(称为码点),但它只负责制定编号,不负责如何存储。

UTF-8 — Unicode 的主流存储方式

UTF-8 是一种变长编码方式:

字符类型 占用字节
英文字母 1 字节(与 ASCII 兼容)
中文等字符 3 字节

例如,汉字「乘」:

  • Unicode 码点:4E58(十六进制)
  • 十进制:20056
  • 二进制:100111001011000

编程验证:CHR() 与 ORD()

在 Python 中可以验证字符编码:

1
2
3
4
5
# ord() — 将字符转为对应的整数
print(ord("乘")) # 输出:20056

# chr() — 将整数转为对应的字符
print(chr(20056)) # 输出:乘

核心总结

不管是中文还是英文,在计算机中都以字符形式存在,每个字符对应一个整数(可用十进制、二进制、十六进制表示)。最终所有数据都会被转换为二进制,因为计算机只识别 0 和 1。

知识点 关键内容
二进制 0 和 1,逢二进一
存储单位 1 BYTE = 8 BIT,1024 换算
ASCII 8 位,128 个符号,只适合英文
GB2312/GBK/GB18030 中文编码演进
Unicode 全球统一字符编号
UTF-8 Unicode 的变长存储方式,英文 1 字节,中文 3 字节

二进制与字符编码完全指南
https://luoshuang.org/2026/04/18/二进制与字符编码完全指南/
作者
LuoShuang
发布于
2026年4月18日
许可协议