在计算机中,所有数据都是以二进制数的形式存储的,字符 char
也不例外。为了表示字符,我们需要建立一套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成二进制数到字符的转换。
ASCII 字符集
十进制 | 二进制 | 字符 | 含义 |
---|---|---|---|
0 | 0000 0000 | MUL | 空字符 |
1 | 0000 0001 | SOH | 标题开始 |
2 | 0000 0010 | STX | 正文开始 |
3 | 0000 0011 | ETX | 正文结束 |
4 | 0000 0100 | EOT | 传输结束 |
5 | 0000 0101 | ENQ | 请求 |
6 | 0000 0110 | ACK | 收到通知 |
7 | 0000 0111 | BEL | 响铃 |
8 | 0000 1000 | BS | 退格 |
9 | 0000 1001 | HT | 水平制表符 |
10 | 0000 1010 | LF | 换行键 |
11 | 0000 1011 | VT | 垂直制表符 |
12 | 0000 1100 | FF | 换页键 |
13 | 0000 1101 | CR | 回车键 |
14 | 0000 1110 | SO | 不用切换 |
15 | 0000 1111 | SI | 启用切换 |
16 | 0001 0000 | DLE | 数据链路转义 |
17 | 0001 0001 | DC1 | 设备控制1 |
18 | 0001 0010 | DC2 | 设备控制2 |
19 | 0001 0011 | DC3 | 设备控制3 |
20 | 0001 0100 | DC4 | 设备控制4 |
21 | 0001 0101 | NAK | 拒绝接收 |
22 | 0001 0110 | SYN | 同步空间 |
23 | 0001 0111 | ETB | 结束传输块 |
24 | 0001 1000 | CAN | 取消 |
25 | 0001 1001 | EM | 媒介结束 |
26 | 0001 1010 | SUB | 替代 |
27 | 0001 1011 | ESC | 换码(溢出) |
28 | 0001 1100 | FS | 文件分隔符 |
29 | 0001 1101 | GS | 分组符 |
30 | 0001 1110 | RS | 记录分隔符 |
31 | 0001 1111 | US | 单元分隔符 |
32 | 0010 0000 | SP | 空格 |
十进制 | 二进制 | 字符 |
---|---|---|
33 | 0010 0001 | ! |
34 | 0010 0010 | ‘’ |
35 | 0010 0011 | # |
36 | 0010 0100 | $ |
37 | 0010 0101 | % |
38 | 0010 0110 | & |
39 | 0010 0111 | ‘ |
40 | 0010 1000 | ( |
41 | 0010 1001 | ) |
42 | 0010 1010 | * |
43 | 0010 1011 | + |
44 | 0010 1100 | , |
45 | 0010 1101 | - |
46 | 0010 1110 | . |
47 | 0010 1111 | / |
48 | 0011 0000 | 0 |
49 | 0011 0001 | 1 |
50 | 0011 0010 | 2 |
51 | 0011 0011 | 3 |
52 | 0011 0100 | 4 |
53 | 0011 0101 | 5 |
54 | 0011 0110 | 6 |
55 | 0011 0111 | 7 |
56 | 0011 1000 | 8 |
57 | 0011 01001 | 9 |
58 | 0011 1010 | : |
59 | 0011 1011 | ; |
60 | 0011 1100 | < |
61 | 0011 1101 | = |
62 | 0011 1110 | > |
63 | 0011 1111 | ? |
64 | 0100 0000 | @ |
十进制 | 二进制 | 字符 |
---|---|---|
65 | 0100 0001 | A |
66 | 0100 0010 | B |
67 | 0100 0011 | C |
68 | 0100 0100 | D |
69 | 0100 0101 | E |
70 | 0100 0110 | F |
71 | 0100 0111 | G |
72 | 0010 1000 | H |
73 | 0100 1001 | I |
74 | 0100 1010 | J |
75 | 0100 1011 | K |
76 | 0100 1100 | L |
77 | 0100 1101 | M |
78 | 0100 1110 | N |
79 | 0100 1111 | O |
80 | 0101 0000 | P |
81 | 0101 0001 | Q |
82 | 0101 0010 | R |
83 | 0101 0011 | S |
84 | 0101 0100 | T |
85 | 0101 0101 | U |
86 | 0101 0110 | V |
87 | 0101 0111 | W |
88 | 0101 1000 | X |
89 | 0101 01001 | Y |
90 | 0101 1010 | Z |
91 | 0101 1011 | [ |
92 | 0101 1100 | \ |
93 | 0101 1101 | ] |
94 | 0101 1110 | ^ |
95 | 0101 1111 | _ |
96 | 0110 0000 | ` |
十进制 | 二进制 | 字符 |
---|---|---|
97 | 0110 0001 | a |
98 | 0110 0010 | b |
99 | 0110 0011 | c |
100 | 0110 0100 | d |
101 | 0110 0101 | e |
102 | 0110 0110 | f |
103 | 0110 0111 | g |
104 | 0110 1000 | h |
105 | 0110 1001 | i |
106 | 0110 1010 | j |
107 | 0110 1011 | k |
108 | 0110 1100 | l |
109 | 0110 1101 | m |
110 | 0110 1110 | n |
111 | 0110 1111 | o |
112 | 0111 0000 | p |
113 | 0111 0001 | q |
114 | 0111 0010 | r |
115 | 0111 0011 | s |
116 | 0111 0100 | t |
117 | 0111 0101 | u |
118 | 0111 0110 | v |
119 | 0111 0111 | w |
120 | 0111 1000 | x |
121 | 0111 01001 | y |
122 | 0111 1010 | z |
123 | 0111 1011 | { |
124 | 0111 1100 | | |
125 | 0111 1101 | } |
126 | 0111 1110 | ~ |
127 | 0111 1111 | DEL |
应用场景与重要性
ASCII字符集的重要性不仅体现在它的历史地位上,更在于其作为许多后续编码系统的基石作用。尽管后来出现了支持更多字符集的Unicode编码,但ASCII仍然是许多编程语言、协议和技术的基础。例如,在HTML文档中,ASCII字符集被用来定义大部分可见文本内容;在网络通信协议中,ASCII编码也经常用于传输命令和服务响应。
总之,ASCII字符集是一个简单却极其重要的编码系统,它不仅帮助实现了早期计算机之间的数据交换,也为今天的全球数字化交流奠定了坚实的基础。即使在今天,当我们谈论字符编码时,ASCII依然是一个绕不开的话题。
注意实现:
ASCII表中的转换通用与市面上大多语言。