ASCLL码介绍、转义字符详细介绍
一、ASCLL码
0~31及127(共33个)是控制字符,它们并没有特定的图形显示,在实际的工程项目中,会依不同的应用程序起特定的作用 。
32~126(共95个)是字符(32是空格):其中48~57为0到9十个阿拉伯数字。65~90为26个大写英文字母,97~122为26个小写英文字母,其余为一些标点符号、运算符号等。
Bin (二进制) |
Oct (八进制) |
Dec (十进制) |
Hex (十六进制) |
缩写/字符 |
解释 |
以下(0~31)为控制字符 |
|||||
0000 0000 |
00 |
0 |
0x00 |
NUL(null) |
空字符 |
0000 0001 |
01 |
1 |
0x01 |
SOH(start of headline) |
标题开始 |
0000 0010 |
02 |
2 |
0x02 |
STX (start of text) |
正文开始 |
0000 0011 |
03 |
3 |
0x03 |
ETX (end of text) |
正文结束 |
0000 0100 |
04 |
4 |
0x04 |
EOT (end of transmission) |
传输结束 |
0000 0101 |
05 |
5 |
0x05 |
ENQ (enquiry) |
请求 |
0000 0110 |
06 |
6 |
0x06 |
ACK (acknowledge) |
收到通知 |
0000 0111 |
07 |
7 |
0x07 |
BEL (bell) |
响铃 |
0000 1000 |
010 |
8 |
0x08 |
BS (backspace) |
退格 |
0000 1001 |
011 |
9 |
0x09 |
HT (horizontal tab) |
水平制表符 |
0000 1010 |
012 |
10 |
0x0A |
LF (NL line feed, new line) |
换行键 |
0000 1011 |
013 |
11 |
0x0B |
VT (vertical tab) |
垂直制表符 |
0000 1100 |
014 |
12 |
0x0C |
FF (NP form feed, new page) |
换页键 |
0000 1101 |
015 |
13 |
0x0D |
CR (carriage return) |
回车键 |
0000 1110 |
016 |
14 |
0x0E |
SO (shift out) |
不用切换 |
0000 1111 |
017 |
15 |
0x0F |
SI (shift in) |
启用切换 |
0001 0000 |
020 |
16 |
0x10 |
DLE (data link escape) |
数据链路转义 |
0001 0001 |
021 |
17 |
0x11 |
DC1 (device control 1) |
设备控制1 |
0001 0010 |
022 |
18 |
0x12 |
DC2 (device control 2) |
设备控制2 |
0001 0011 |
023 |
19 |
0x13 |
DC3 (device control 3) |
设备控制3 |
0001 0100 |
024 |
20 |
0x14 |
DC4 (device control 4) |
设备控制4 |
0001 0101 |
025 |
21 |
0x15 |
NAK (negative acknowledge) |
拒绝接收 |
0001 0110 |
026 |
22 |
0x16 |
SYN (synchronous idle) |
同步空闲 |
0001 0111 |
027 |
23 |
0x17 |
ETB (end of trans. block) |
结束传输块 |
0001 1000 |
030 |
24 |
0x18 |
CAN (cancel) |
取消 |
0001 1001 |
031 |
25 |
0x19 |
EM (end of medium) |
媒介结束 |
0001 1010 |
032 |
26 |
0x1A |
SUB (substitute) |
代替 |
0001 1011 |
033 |
27 |
0x1B |
ESC (escape) |
换码(溢出) |
0001 1100 |
034 |
28 |
0x1C |
FS (file separator) |
文件分隔符 |
0001 1101 |
035 |
29 |
0x1D |
GS (group separator) |
分组符 |
0001 1110 |
036 |
30 |
0x1E |
RS (record separator) |
记录分隔符 |
0001 1111 |
037 |
31 |
0x1F |
US (unit separator) |
单元分隔符 |
以下为标点符号(32~47、58~64、91~96、123~126) |
|||||
0010 0000 |
040 |
32 |
0x20 |
(space) |
空格 |
0010 0001 |
041 |
33 |
0x21 |
! |
叹号 |
0010 0010 |
042 |
34 |
0x22 |
" |
双引号 |
0010 0011 |
043 |
35 |
0x23 |
# |
井号 |
0010 0100 |
044 |
36 |
0x24 |
$ |
美元符 |
0010 0101 |
045 |
37 |
0x25 |
% |
百分号 |
0010 0110 |
046 |
38 |
0x26 |
& |
和号 |
0010 0111 |
047 |
39 |
0x27 |
' |
闭单引号 |
0010 1000 |
050 |
40 |
0x28 |
( |
开括号 |
0010 1001 |
051 |
41 |
0x29 |
) |
闭括号 |
0010 1010 |
052 |
42 |
0x2A |
* |
星号 |
0010 1011 |
053 |
43 |
0x2B |
+ |
加号 |
0010 1100 |
054 |
44 |
0x2C |
, |
逗号 |
0010 1101 |
055 |
45 |
0x2D |
- |
减号/破折号 |
0010 1110 |
056 |
46 |
0x2E |
. |
句号 |
0010 1111 |
057 |
47 |
0x2F |
/ |
斜杠 |
48~57为字符 '0' ~ '9' |
|||||
0011 1010 |
072 |
58 |
0x3A |
: |
冒号 |
0011 1011 |
073 |
59 |
0x3B |
; |
分号 |
0011 1100 |
074 |
60 |
0x3C |
< |
小于 |
0011 1101 |
075 |
61 |
0x3D |
= |
等号 |
0011 1110 |
076 |
62 |
0x3E |
> |
大于 |
0011 1111 |
077 |
63 |
0x3F |
? |
问号 |
0100 0000 |
0100 |
64 |
0x40 |
@ |
电子邮件符号 |
|
|
|
|
|
|
0101 1011 |
0133 |
91 |
0x5B |
[ |
开方括号 |
0101 1100 |
0134 |
92 |
0x5C |
\ |
反斜杠 |
0101 1101 |
0135 |
93 |
0x5D |
] |
闭方括号 |
0101 1110 |
0136 |
94 |
0x5E |
^ |
脱字符 |
0101 1111 |
0137 |
95 |
0x5F |
_ |
下划线 |
0110 0000 |
0140 |
96 |
0x60 |
` |
开单引号 |
97~122为小写字母 |
|||||
0111 1011 |
0173 |
123 |
0x7B |
{ |
开花括号 |
0111 1100 |
0174 |
124 |
0x7C |
| |
垂线 |
0111 1101 |
0175 |
125 |
0x7D |
} |
闭花括号 |
0111 1110 |
0176 |
126 |
0x7E |
~ |
波浪号 |
127为控制字符 |
|||||
0111 1111 |
0177 |
127 |
0x7F |
DEL (delete) |
删除 |
ASCLL码是用来表示字符的,ASCLL码本身是数字。
“ 为什么要使用ASCII码?"
日常生活中,我们使用的字母a、b、c在计算机中是没法直接运算的,需要转成0、1组成的二进制数使计算机能够识别,这就出现了ASCLL码 (American Standard Code for Information Interchange): 美国信息交换标准代码)
我们在生活中常用的有字母a~z、A~Z、0~9,还有一些常用的符号(例如*、#、@等),ASCLL码是ANSI(美国国家标准学会(American National Standard Institute ))制定的,是一种单字符编码方案。用于基于文本的数据
任何一个字符都对应一个整数。计算机内部信息都是有0或1组成的,如果
ASCLL码共有128个,使用七位二进制数来表示字符'0'~'9'、小写字母'a'~'z'、大写字母'A'~'Z'、还有控制符
七位二进制数:0000000~1111111 (十进制的0~127)共128个数,所以有128个ASCLL码
(进制转换在第二章第一节1.3中介绍)
其中0不存储任何字符,
剩余127个表示如下字符:
十进制ASCLL码 |
表示的字符 |
ASCLL码本码 |
0~31及127 |
控制字符 |
|
48~57 |
字符'0'~'9'(10个) |
二进制:110000~111001 |
97~122 |
小写字母'a'~'z'(26个) |
|
65~90 |
大写字母'A'~'Z'(26个) |
|
控制字符在C语言中用转义字符表示,当然转义字符不只是可以表示控制字符。如:'\41'→041(八进制)→33(十进制)→ !(标点符号)
字母记不住?
大写记忆方法:
只需记住A的ascll码为65,加几等于目标字符?
把A~Z想象成1~26,
E的ASCLL,码是多少?A就是1,E就是5,1加几等于5?4!那么E就等于A加4=65+4=69;
Z想象成26,26=1+25,Z就等于65+25=90
小写记忆方法:
小写a~z一样的,只需记住a的ascll码为97,加几等于目标字符?
把a~z想象成1~26,
f的ASCLL码是多少?a就是1,1加几等于6?5!那么f就等于a加5=97+5=102;
z就是26,1加几等于26?25,Z就等于97+25=122
数字记忆方法:
'0'是48,
'9'的ACSLL码是多少?0+几等于9?9!所以'0'就加9, ,等于 48+9=57
大小规则
常见ASCII码的大小规则:0~9<A~Z<a~z。
1)数字比字母要小。如 “7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;
4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。
几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48 。
二、转义字符
转义字符和普通字符区别:
普通字符前加\就不是普通字符了,变为了转义字符
printf("%d\n",'\b'); //8 '\b'是转义字符对应ASCII码为8
printf("%d\n",'b'); //98 'b'是普通字符对应ASCII码为98
printf("%d\n",'\n'); //10 '\n'是转义字符对应ASCII码为10
printf("%d\n",'n'); //110 'n'是转义字符对应ASCII码为110
控制字符不显示:
分别以十、八、十六进制输出控制字符,结果:不会有字符显示在屏幕上
printf("%c,%c,%c\n",127,0177,0x7F); //,, (ASCII为127的字符是控制字符(del:删除),因此不显示)
printf("%c,%c,%c\n",7,'\7','\x7'); //,, (ASCII为7的字符是控制字符(\a:响铃),因此不显示)
转义字符的表示方法(3种):
'\+字符' |
'\n' |
换行 |
'\+1~3为8进制数'(0~7) |
'\101' |
即0101(八进制)→ 65(十进制)→ 'A' |
'\x+1~2位十六进制数'(0~F)(即0~15) |
'\x4F' |
即0x4F(十六进制)→ 99(十进制)→ 'c ' |
注意:转义字符的前缀是反斜杠\,不是斜杠/。只有除以(/)和取余(%)是斜杠,其他(转义字符前缀、文件路径)的是反斜杠!!!!
所有的转义字符和所对应的意义:
转义字符 |
意义 |
ASCII码值(十进制) |
\a |
响铃(BEL) |
007 |
\b |
退格(BS) ,将当前位置移到前一列 |
008 |
\f |
换页(FF),将当前位置移到下页开头 |
012 |
\n |
换行(LF) ,将当前位置移到下一行开头 |
010 |
\r |
回车(CR) ,将当前位置移到本行开头 |
013 |
\t |
水平制表(HT) (跳到下一个TAB位置) |
009 |
\v |
垂直制表(VT) |
011 |
\\ |
代表一个反斜线字符''\' |
092 |
\' |
代表一个单引号(撇号)字符 |
039 |
\" |
代表一个双引号字符 |
034 |
\? |
代表一个问号 |
063 |
\0 |
空字符(NUL) |
000 |
\ddd |
1到3位八进制数所代表的任意字符 |
三位八进制 |
\xhh |
十六进制所代表的任意字符 |
十六进制 |
- 点赞
- 收藏
- 关注作者
评论(0)