ASCII码表
ASCII 控制字符 (字符编码: 0-31) | ||||
|---|---|---|---|---|
十进制DEC | 八进制OCT | 十六进制HEX | 符号 | 描述 |
ASCII 打印字符 (字符编码: 32-127) | ||||
|---|---|---|---|---|
十进制DEC | 八进制OCT | 十六进制HEX | 符号 | 描述 |
ASCII扩展码 (字符编码: 128-255) | ||||
|---|---|---|---|---|
十进制DEC | 八进制OCT | 十六进制HEX | 符号 | 描述 |
ASCII 码表使用指南
一、什么是 ASCII 编码?
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套计算机编码系统。它使用 7 位二进制数来表示 128 个字符,包括英文字母(大小写)、数字 0-9、标点符号以及 33 个控制字符。ASCII 是现代字符编码的基础,理解 ASCII 是掌握 Unicode、UTF-8 等编码体系的前提。
二、ASCII 字符分类
- 控制字符(0-31 及 127):不可打印字符,用于控制设备行为,如换行符(LF,10)、回车符(CR,13)、制表符(HT,9)、退格符(BS,8)等
- 可打印字符(32-126):包括空格(32)、数字 0-9(48-57)、大写字母 A-Z(65-90)、小写字母 a-z(97-122)以及常见标点符号
- 扩展 ASCII(128-255):不属于标准 ASCII,不同编码页(如 ISO-8859-1、Windows-1252)对扩展区的定义不同
三、典型使用场景
- 学习字符编码基础,理解字符、数字与底层编码之间的映射关系
- 处理转义字符、控制字符或需要按编码范围过滤字符时作为参考
- 调试与编码相关的问题,例如乱码、协议报文中的控制字符等
- 开发串口通信、网络协议时,需要了解控制字符的含义
- 编写正则表达式时,利用 ASCII 码范围匹配特定字符集
四、ASCII 与 Unicode 的关系
Unicode 是 ASCII 的超集。Unicode 的前 128 个码点(U+0000 到 U+007F)与 ASCII 完全一致,这意味着任何有效的 ASCII 文本同时也是有效的 UTF-8 文本。UTF-8 编码对 ASCII 字符使用单字节表示,与 ASCII 完全兼容;对其他字符使用 2-4 个字节。在现代应用中,虽然更多使用 Unicode 和 UTF-8,但理解 ASCII 仍然是掌握字符编码的基础。
五、常见问题
1. 为什么大写字母和小写字母的 ASCII 码差 32?
这是设计者刻意为之:大写 A 的 ASCII 码是 65,小写 a 是 97,差值恰好是 32(即二进制第 5 位)。这意味着大小写转换只需翻转一个比特位,非常高效。
2. 数字字符 '0' 的 ASCII 码为什么不是 0?
数字字符 '0' 的 ASCII 码是 48,而非 0。ASCII 码 0-31 是控制字符,不可打印。将数字字符转为数值需要减去 48(即 '0'),这是 C 语言中 char - '0' 的原理。