打字测速

字符之本

ASCII 码表

0-127 完整对照 · 可搜索 · 按下任意键即刻查码 · 点击复制

点击此处,然后按下任意键,即刻定位它的 ASCII 码
十进制十六进制字符说明
00x00不可见NUL 空字符
10x01不可见SOH 标题开始
20x02不可见STX 正文开始
30x03不可见ETX 正文结束
40x04不可见EOT 传输结束
50x05不可见ENQ 询问
60x06不可见ACK 确认
70x07不可见BEL 响铃
80x08不可见BS 退格
90x09不可见TAB 水平制表符
100x0A不可见LF 换行
110x0B不可见VT 垂直制表符
120x0C不可见FF 换页
130x0D不可见CR 回车
140x0E不可见SO 移出
150x0F不可见SI 移入
160x10不可见DLE 数据链路转义
170x11不可见DC1 设备控制一
180x12不可见DC2 设备控制二
190x13不可见DC3 设备控制三
200x14不可见DC4 设备控制四
210x15不可见NAK 否定确认
220x16不可见SYN 同步空闲
230x17不可见ETB 传输块结束
240x18不可见CAN 取消
250x19不可见EM 介质结束
260x1A不可见SUB 替换
270x1B不可见ESC 转义
280x1C不可见FS 文件分隔符
290x1D不可见GS 组分隔符
300x1E不可见RS 记录分隔符
310x1F不可见US 单元分隔符
320x20空格
330x21!符号 !
340x22"符号 "
350x23#符号 #
360x24$符号 $
370x25%符号 %
380x26&符号 &
390x27'符号 '
400x28(符号 (
410x29)符号 )
420x2A*符号 *
430x2B+符号 +
440x2C,符号 ,
450x2D-符号 -
460x2E.符号 .
470x2F/符号 /
480x300数字 0
490x311数字 1
500x322数字 2
510x333数字 3
520x344数字 4
530x355数字 5
540x366数字 6
550x377数字 7
560x388数字 8
570x399数字 9
580x3A:符号 :
590x3B;符号 ;
600x3C<符号 <
610x3D=符号 =
620x3E>符号 >
630x3F?符号 ?
640x40@符号 @
650x41A大写字母 A
660x42B大写字母 B
670x43C大写字母 C
680x44D大写字母 D
690x45E大写字母 E
700x46F大写字母 F
710x47G大写字母 G
720x48H大写字母 H
730x49I大写字母 I
740x4AJ大写字母 J
750x4BK大写字母 K
760x4CL大写字母 L
770x4DM大写字母 M
780x4EN大写字母 N
790x4FO大写字母 O
800x50P大写字母 P
810x51Q大写字母 Q
820x52R大写字母 R
830x53S大写字母 S
840x54T大写字母 T
850x55U大写字母 U
860x56V大写字母 V
870x57W大写字母 W
880x58X大写字母 X
890x59Y大写字母 Y
900x5AZ大写字母 Z
910x5B[符号 [
920x5C\符号 \
930x5D]符号 ]
940x5E^符号 ^
950x5F_符号 _
960x60`符号 `
970x61a小写字母 a
980x62b小写字母 b
990x63c小写字母 c
1000x64d小写字母 d
1010x65e小写字母 e
1020x66f小写字母 f
1030x67g小写字母 g
1040x68h小写字母 h
1050x69i小写字母 i
1060x6Aj小写字母 j
1070x6Bk小写字母 k
1080x6Cl小写字母 l
1090x6Dm小写字母 m
1100x6En小写字母 n
1110x6Fo小写字母 o
1120x70p小写字母 p
1130x71q小写字母 q
1140x72r小写字母 r
1150x73s小写字母 s
1160x74t小写字母 t
1170x75u小写字母 u
1180x76v小写字母 v
1190x77w小写字母 w
1200x78x小写字母 x
1210x79y小写字母 y
1220x7Az小写字母 z
1230x7B{符号 {
1240x7C|符号 |
1250x7D}符号 }
1260x7E~符号 ~
1270x7F不可见DEL 删除

128 项 · 可打印字符点击行即复制

三个值得背下来的编码规律

一、数字从 48 开始。字符 0 的码是 48,所以「字符数字转整数」只需减 48—— 这是所有语言 atoi 实现的第一行。顺带记住:9 是 57,数字区恰好十个连续码位。

二、大小写差 32。A=65、a=97,差值 32 对应二进制第 5 位。 手写大小写转换时 ch ^ 32 一步搞定; 判断字母可用 (ch | 32) - 97 < 26 同时兼容大小写。

三、可打印区从 32 开始。32 是空格,33 起是可见字符,127 是 DEL。 校验「可打印 ASCII」的判断式 32 <= ch <= 126 在解析协议时每天都会用到。

查完码表想活动手指?去代码打字练习把常用符号练出肌肉记忆; 符号输出难题可查特殊符号大全; 回首页测测手速。

常见问题

为什么大写 A 是 65,小写 a 是 97?

这是 ASCII 设计者的精心安排:大小写字母的编码恰好相差 32(97-65=32),二进制上只差一个位(第 5 位)。于是大小写转换只需一次位运算 ch ^ 32 或 ch | 32,无需查表——上世纪六十年代的硬件条件下,这个设计省下了真金白银的电路。数字同理:字符 0 是 48,字符减 48 即得真值,位运算 ch & 15 也行。

换行 LF 和回车 CR 有什么区别?

源自打字机时代:CR(Carriage Return,13)把打印头移回行首,LF(Line Feed,10)把纸往上滚一行,两个动作合起来才是「换行」。这个历史包袱延续至今——Windows 用 CRLF(\r\n)表示换行,Unix/Linux/macOS 只用 LF(\n),老 Mac 曾单用 CR。跨平台文本出现莫名空行或挤成一行,九成是换行符不一致。

ASCII 和 Unicode 是什么关系?

ASCII 只有 128 个字符(7 位),是 1963 年的美国标准;Unicode 收录了全世界十几万个字符。两者无缝衔接:Unicode 的前 128 个码位与 ASCII 完全一致,UTF-8 编码下 ASCII 字符仍只占一个字节。所以 ASCII 表永远不会过时——它既是活标准,也是理解一切字符编码的起点。

控制字符现在还有用吗?

大部分已退出日常视野,但几位仍在关键岗位:TAB(9)缩进、LF(10)换行、CR(13)回车、ESC(27)是终端转义序列的开端(彩色输出、光标控制全靠它)、BEL(7)仍会让终端「叮」一声。NUL(0)则继续担任 C 语言字符串的结尾标志——面试考 strlen 原理时它必出场。