什么是 ASCII 码?常见的 ASCII 码表(十进制、十六进制、字符对照)
在今天的计算机世界里,我们随时都在与“字符编码”打交道。写代码、发消息、传文件……背后都有一套规则在运作。
而这一切的起点,正是 ASCII 码(American Standard Code for Information Interchange,美国信息交换标准代码)。
它是计算机历史上最早、最重要的编码方案之一,可以说是所有现代字符编码的“基石”。
什么是 ASCII 码?
ASCII 诞生于 1963 年,1967 年定稿,最初是为了让计算机、打印机、电传机等设备能够“说同一种语言”。
- 范围:0 ~ 127,共 128 个字符。
- 存储方式:每个字符用 1 字节表示,但只使用低 7 位(高 1 位为 0)。
- 作用:规定了字母、数字、符号以及一些控制字符与二进制代码之间的对应关系。
举例:
- 字母 A 的 ASCII 码是 65(二进制 01000001)。
- 数字 0 的 ASCII 码是 48。
- 空格 的 ASCII 码是 32。
ASCII 的分类
- 控制字符(0–31,127)
- 不可打印,用来控制设备。
- 如:\n(换行,10)、\t(制表符,9)、DEL(删除,127)。
- 可打印字符(32–126)
- 包括字母、数字、标点符号。
- 如:空格(32)、A–Z(65–90)、a–z(97–122)。
ASCII 码完整对照表(0–127)
十进制 | 十六进制 | 二进制 | 字符 | 描述 |
0 | 0x00 | 00000000 | NUL | 空字符 |
1 | 0x01 | 00000001 | SOH | 标题开始 |
2 | 0x02 | 00000010 | STX | 正文开始 |
3 | 0x03 | 00000011 | ETX | 正文结束 |
4 | 0x04 | 00000100 | EOT | 传输结束 |
5 | 0x05 | 00000101 | ENQ | 请求 |
6 | 0x06 | 00000110 | ACK | 确认 |
7 | 0x07 | 00000111 | BEL | 响铃 |
8 | 0x08 | 00001000 | BS | 退格 |
9 | 0x09 | 00001001 | TAB | 制表符 |
10 | 0x0A | 00001010 | LF | 换行 |
11 | 0x0B | 00001011 | VT | 垂直制表符 |
12 | 0x0C | 00001100 | FF | 换页符 |
13 | 0x0D | 00001101 | CR | 回车 |
14 | 0x0E | 00001110 | SO | 移出 |
15 | 0x0F | 00001111 | SI | 移入 |
16 | 0x10 | 00010000 | DLE | 数据链路转义 |
17 | 0x11 | 00010001 | DC1 | 设备控制1 |
18 | 0x12 | 00010010 | DC2 | 设备控制2 |
19 | 0x13 | 00010011 | DC3 | 设备控制3 |
20 | 0x14 | 00010100 | DC4 | 设备控制4 |
21 | 0x15 | 00010101 | NAK | 拒绝 |
22 | 0x16 | 00010110 | SYN | 同步空闲 |
23 | 0x17 | 00010111 | ETB | 传输块结束 |
24 | 0x18 | 00011000 | CAN | 取消 |
25 | 0x19 | 00011001 | EM | 介质结束 |
26 | 0x1A | 00011010 | SUB | 替补 |
27 | 0x1B | 00011011 | ESC | 转义 |
28 | 0x1C | 00011100 | FS | 文件分隔符 |
29 | 0x1D | 00011101 | GS | 分组符 |
30 | 0x1E | 00011110 | RS | 记录分隔符 |
31 | 0x1F | 00011111 | US | 单元分隔符 |
32 | 0x20 | 00100000 | (space) | 空格 |
33 | 0x21 | 00100001 | ! | 感叹号 |
34 | 0x22 | 00100010 | " | 双引号 |
35 | 0x23 | 00100011 | # | 井号 |
36 | 0x24 | 00100100 | $ | 美元符 |
37 | 0x25 | 00100101 | % | 百分号 |
38 | 0x26 | 00100110 | & | 和号 |
39 | 0x27 | 00100111 | ' | 单引号 |
40 | 0x28 | 00101000 | ( | 左括号 |
41 | 0x29 | 00101001 | ) | 右括号 |
42 | 0x2A | 00101010 | * | 星号 |
43 | 0x2B | 00101011 | + | 加号 |
44 | 0x2C | 00101100 | , | 逗号 |
45 | 0x2D | 00101101 | - | 减号 |
46 | 0x2E | 00101110 | . | 点号 |
47 | 0x2F | 00101111 | / | 斜杠 |
48 | 0x30 | 00110000 | 0 | 数字0 |
49 | 0x31 | 00110001 | 1 | 数字1 |
50 | 0x32 | 00110010 | 2 | 数字2 |
51 | 0x33 | 00110011 | 3 | 数字3 |
52 | 0x34 | 00110100 | 4 | 数字4 |
53 | 0x35 | 00110101 | 5 | 数字5 |
54 | 0x36 | 00110110 | 6 | 数字6 |
55 | 0x37 | 00110111 | 7 | 数字7 |
56 | 0x38 | 00111000 | 8 | 数字8 |
57 | 0x39 | 00111001 | 9 | 数字9 |
58 | 0x3A | 00111010 | : | 冒号 |
59 | 0x3B | 00111011 | ; | 分号 |
60 | 0x3C | 00111100 | < | 小于号 |
61 | 0x3D | 00111101 | = | 等号 |
62 | 0x3E | 00111110 | > | 大于号 |
63 | 0x3F | 00111111 | ? | 问号 |
64 | 0x40 | 01000000 | @ | at符号 |
65 | 0x41 | 01000001 | A | 大写A |
66 | 0x42 | 01000010 | B | 大写B |
67 | 0x43 | 01000011 | C | 大写C |
68 | 0x44 | 01000100 | D | 大写D |
69 | 0x45 | 01000101 | E | 大写E |
70 | 0x46 | 01000110 | F | 大写F |
71 | 0x47 | 01000111 | G | 大写G |
72 | 0x48 | 01001000 | H | 大写H |
73 | 0x49 | 01001001 | I | 大写I |
74 | 0x4A | 01001010 | J | 大写J |
75 | 0x4B | 01001011 | K | 大写K |
76 | 0x4C | 01001100 | L | 大写L |
77 | 0x4D | 01001101 | M | 大写M |
78 | 0x4E | 01001110 | N | 大写N |
79 | 0x4F | 01001111 | O | 大写O |
80 | 0x50 | 01010000 | P | 大写P |
81 | 0x51 | 01010001 | Q | 大写Q |
82 | 0x52 | 01010010 | R | 大写R |
83 | 0x53 | 01010011 | S | 大写S |
84 | 0x54 | 01010100 | T | 大写T |
85 | 0x55 | 01010101 | U | 大写U |
86 | 0x56 | 01010110 | V | 大写V |
87 | 0x57 | 01010111 | W | 大写W |
88 | 0x58 | 01011000 | X | 大写X |
89 | 0x59 | 01011001 | Y | 大写Y |
90 | 0x5A | 01011010 | Z | 大写Z |
91 | 0x5B | 01011011 | [ | 左中括号 |
92 | 0x5C | 01011100 | \ | 反斜杠 |
93 | 0x5D | 01011101 | ] | 右中括号 |
94 | 0x5E | 01011110 | ^ | 插入号 |
95 | 0x5F | 01011111 | _ | 下划线 |
96 | 0x60 | 01100000 | ` | 重音符 |
97 | 0x61 | 01100001 | a | 小写a |
98 | 0x62 | 01100010 | b | 小写b |
99 | 0x63 | 01100011 | c | 小写c |
100 | 0x64 | 01100100 | d | 小写d |
101 | 0x65 | 01100101 | e | 小写e |
102 | 0x66 | 01100110 | f | 小写f |
103 | 0x67 | 01100111 | g | 小写g |
104 | 0x68 | 01101000 | h | 小写h |
105 | 0x69 | 01101001 | i | 小写i |
106 | 0x6A | 01101010 | j | 小写j |
107 | 0x6B | 01101011 | k | 小写k |
108 | 0x6C | 01101100 | l | 小写l |
109 | 0x6D | 01101101 | m | 小写m |
110 | 0x6E | 01101110 | n | 小写n |
111 | 0x6F | 01101111 | o | 小写o |
112 | 0x70 | 01110000 | p | 小写p |
113 | 0x71 | 01110001 | q | 小写q |
114 | 0x72 | 01110010 | r | 小写r |
115 | 0x73 | 01110011 | s | 小写s |
116 | 0x74 | 01110100 | t | 小写t |
117 | 0x75 | 01110101 | u | 小写u |
118 | 0x76 | 01110110 | v | 小写v |
119 | 0x77 | 01110111 | w | 小写w |
120 | 0x78 | 01111000 | x | 小写x |
121 | 0x79 | 01111001 | y | 小写y |
122 | 0x7A | 01111010 | z | 小写z |
123 | 0x7B | 01111011 | { | 左大括号 |
124 | 0x7C | 01111100 | | | 竖线 |
125 | 0x7D | 01111101 | } | 右大括号 |
126 | 0x7E | 01111110 | ~ | 波浪号 |
127 | 0x7F | 01111111 | DEL | 删除 |
这张表已经覆盖了 标准 ASCII 的 0–127 所有字符。
ASCII 在编程和日常中的应用
- 换行与回车
- Windows:\r\n(CR+LF)
- Linux:\n(LF)
- macOS(旧版):\r(CR)
- 终端控制
- BEL (7) → 提示音
- ESC (27) → 终端颜色控制
- 协议与文件格式
- 早期的 HTTP、SMTP、FTP 等协议完全基于 ASCII。
- 文本文件 .txt 早期都是 ASCII 编码。
ASCII 的局限性
- 只能表示 128 个字符,无法覆盖中文、日文、韩文等。
- 后来发展出了:
- 扩展 ASCII(256 字符,加入了西欧字符)
- Unicode(全球统一编码标准)
- UTF-8(Unicode 的实现方式,兼容 ASCII,现已成为主流)。
可以说,ASCII 是现代编码的“祖先”,而 UTF-8 则是它的继承者。
趣味冷知识
- ASCII 可打印字符一共 95 个(32–126)。
- DEL (127) 设计成“全 1”,是为了在打孔卡片上擦除数据。
- BEL (7) 在终端上至今还能触发“嘀”的提示音。
- 很多编程语言(C、Python、JavaScript)里,ord() 和 chr() 就是 ASCII 转换的直接体现。
总结
ASCII 码虽然简单,但它是计算机历史上最重要的编码方案之一。
它不仅奠定了现代字符编码的基础,还影响了操作系统、编程语言、网络协议的设计。
- 想要真正理解计算机世界里的“字符”与“文本”,就必须先理解 ASCII。
- 掌握它之后,再去学习 Unicode、UTF-8,就会轻松很多。
无论你是编程新手,还是在调试网络协议、处理底层数据,ASCII 码表都是你随时可以拿出来的工具。