ASCII编码

ASCII全名是American Standard Code for Information Interchange, 叫做“美国信息交换标准码”。ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。ASCII码是目前最普及的一种字符编码,它扎根于我们的互联网,操作系统,键盘,打印机,文件字体和打印机等。

标准 ASCII 编码共收录了 128 个字符,其中包含了 33 个控制字符(具有某些特殊功能但是无法显示的字符)和 95 个可显示字符。

ASCII码对照表 八进制 十六进制 十进制 字符

八进制十六进制十进制字符八进制十六进制十进制字符
000nul1004064@
111soh1014165A
222stx1024266B
333etx1034367C
444eot1044468D
555enq1054569E
666ack1064670F
777bel1074771G
1088bs1104872H
1199ht1114973I
120a10nl1124a74J
130b11vt1134b75K
140c12ff1144c76L
150d13er1154d77M
160e14so1164e78N
170f15si1174f79O
201016dle1205080P
211117dc11215181Q
221218dc21225282R
231319dc31235383S
241420dc41245484T
251521nak1255585U
261622syn1265686V
271723etb1275787W
301824can1305888X
311925em1315989Y
321a26sub1325a90Z
331b27esc1335b91[
341c28fs1345c92\
351d29gs1355d93]
361e30re1365e94^
371f31us1375f95_
402032sp1406096'
412133!1416197a
422234"1426298b
432335#1436399c
442436$14464100d
452537%14565101e
462638&14666102f
472739`14767103g
502840(15068104h
512941)15169105i
522a42*1526a106j
532b43+1536b107k
542c441546c108l
552d45-1556d109m
562e46.1566e110n
572f47/1576f111o
603048016070112p
613149116171113q
623250216272114r
633351316373115s
643452416474116t
653553516575117u
663654616676118v
673755716777119w
703856817078120x
713957917179121y
723a58:1727a122z
733b59;1737b123{
743c60<1747c124
753d61=1757d125}
763e62>1767e126~
773f63?1777f127del

控制字符

ASCII控制字符的编号范围是0-31和127(0x00-0x1F和0x7F),共33个字符。ASCII 编码中第 0~31 个字符(开头的 32 个字符)以及第 127 个字符(最后一个字符)都是不可见的(无法显示),但是它们都具有一些特殊功能,所以称为控制字符( Control Character)或者功能码(Function Code)。

为方便人类用户阅读,各个控制字符均有Unicode表示法和脫出字元表示法:

  • Unicode表示法:当想在画面或纸上表示这些控制字元时,就会显示成这个样子。微软拼音输入法中用VUC后跟2401,按空格得到␁。这招貌似在命令行上是不行的
  • 脱出字元表示法:通常用于终端机连线(例如Telnet通讯协定),以脱出字元^开头,再接一个符号,用来让这些控制字元得以在画面上显现。虽然看起来是两个字元,但在终端机上实际只有一个字元。在绝大部分的终端机系统中,包括Windows的命令提示字元(cmd.exe)、Linux和FreeBSD,都可用Ctrl代表脱出字元(下表中的^),输入想要的ASCII控制字元。例如想输入空字符,就要输入Ctrl+2,而非^@,后者会显示成两字元,前者只会显示成一字元。

ASCII控制字符(共33个)

二进制十进制十六进制缩写Unicode表示法脫出字元表示法名称/意义
0000 000000NUL^@空字符(Null)
0000 000111SOH^A标题开始
0000 001022STX^B本文开始
0000 001133ETX^C本文结束
0000 010044EOT^D傳輸结束
0000 010155ENQ^E请求
0000 011066ACK^F確認回應
0000 011177BEL^G响铃
0000 100088BS^H退格
0000 100199HT^I水平定位符號
0000 1010100ALF^J换行键
0000 1011110BVT^K垂直定位符號
0000 1100120CFF^L换页键
0000 1101130DCR^MCR (字元)
0000 1110140ESO^N取消變换(Shift out)
0000 1111150FSI^O启用變换(Shift in)
0001 00001610DLE^P跳出数据通讯
0001 00011711DC1^Q設備控制一(XON 啟用軟體速度控制)
0001 00101812DC2^R設備控制二
0001 00111913DC3^S設備控制三(XOFF 停用軟體速度控制)
0001 01002014DC4^T設備控制四
0001 01012115NAK^U確認失敗回應
0001 01102216SYN^V同步用暫停
0001 01112317ETB^W區塊傳輸结束
0001 10002418CAN^X取消
0001 10012519EM^Y連線介质中断
0001 1010261ASUB^Z替換
0001 1011271BESC^[退出键
0001 1100281CFS^\文件分割符
0001 1101291DGS^]群組分隔符
0001 1110301ERS^^记录分隔符
0001 1111311FUS^_单元分隔符
0111 11111277FDEL^?Delete字符

NUL 被用于C语言中,表示字符串的结束,当一个字符串中间出现 NUL 时,就意味着这个是一个字符串的结尾了。这样就方便按照自己需求去定义字符串,多长都行,当然只要你内存放得下,然后最后加一个\0,即空字符,意思是当前字符串到此结束。

可显示字符

可显示字符编号范围是32-126(0x20-0x7E),共95个字符。

ASCII可显示字符(共95个)

二进制十进制十六进制图形二进制十进制十六进制图形二进制十进制十六进制图形
0010 00003220(space)0100 00006440@0110 00009660`
0010 00013321!0100 00016541A0110 00019761a
0010 00103422"0100 00106642B0110 00109862b
0010 00113523#0100 00116743C0110 00119963c
0010 01003624$0100 01006844D0110 010010064d
0010 01013725%0100 01016945E0110 010110165e
0010 01103826&0100 01107046F0110 011010266f
0010 01113927'0100 01117147G0110 011110367g
0010 10004028(0100 10007248H0110 100010468h
0010 10014129)0100 10017349I0110 100110569i
0010 1010422A*0100 1010744AJ0110 10101066Aj
0010 1011432B+0100 1011754BK0110 10111076Bk
0010 1100442C,0100 1100764CL0110 11001086Cl
0010 1101452D-0100 1101774DM0110 11011096Dm
0010 1110462E.0100 1110784EN0110 11101106En
0010 1111472F/0100 1111794FO0110 11111116Fo
0011 0000483000101 00008050P0111 000011270p
0011 0001493110101 00018151Q0111 000111371q
0011 0010503220101 00108252R0111 001011472r
0011 0011513330101 00118353S0111 001111573s
0011 0100523440101 01008454T0111 010011674t
0011 0101533550101 01018555U0111 010111775u
0011 0110543660101 01108656V0111 011011876v
0011 0111553770101 01118757W0111 011111977w
0011 1000563880101 10008858X0111 100012078x
0011 1001573990101 10018959Y0111 100112179y
0011 1010583A:0101 1010905AZ0111 10101227Az
0011 1011593B;0101 1011915B[0111 10111237B{
0011 1100603C<0101 1100925C\0111 11001247C
0011 1101613D=0101 1101935D]0111 11011257D}
0011 1110623E>0101 1110945E^0111 11101267E~
0011 1111633F?0101 1111955F_
  • 65...90 A...Z
  • 97...122:a...z
© Licensed under CC BY-NC-SA 4.0

640K对每一个人来说都已足够 —— 比尔盖茨

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!