CC++中的ASCII码与转义字符
ASCII码表
信息在计算机上是⽤⼆进制表⽰的,这种表⽰法让⼈理解就很困难。因此计算机上都配有输⼊和输出设备,这些设备的主要⽬的就是,以⼀种⼈类可阅读的形式将信息在这些设备上显
⽰出来供⼈阅读理解。为保证⼈类和设备,设备和计算机之间能进⾏正确的信息交换,⼈们编制了统⼀的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码(American Standard Code for Information Interchange)”。
表达⽅式
ASCII 码使⽤指定的7位或8位⼆进制数组合来表⽰128或256种可能的字符。
标准ASCII码
标准ASCII码也叫基础ASCII码,使⽤7位⼆进制数(剩下的1位⼆进制为0)来表⽰所有的⼤写和⼩写字母,数字0 ~ 9、标点符号,以及在美式英语中使⽤的特殊控制字符。(1)0~31及127(共33个)是控制字符或通信专⽤字符(其余为可显⽰字符)。如控制符:LF(换⾏)、CR(回车)、FF(换页)、DEL
(删除)、BS(退格)、BEL(响铃)等;通信专⽤字符:SOH(⽂头)、EOT(⽂尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换⾏和回车字符。它们并没有特定的图形显⽰,但会依不同的应⽤程序,⽽对⽂本显⽰有不同的影响。
(2)32~126(共95个)是字符(32是空格),其中48~57为0 ~ 9这⼗个阿拉伯数字。
(3)65~90为26个⼤写英⽂字母,97~122号为26个⼩写英⽂字母,其余为⼀些标点符号、运算符号等。
奇偶校验
同时还要注意,在标准ASCII中,其最⾼位(b7)⽤作奇偶校验位。
所谓奇偶校验,是指在代码传送过程中⽤来检验是否出现错误的⼀种⽅法,⼀般分奇校验和偶校验两种。
奇校验规定:正确的代码⼀个字节中1的个数必须是奇数,若⾮奇数,则在最⾼位b7添1。
偶校验规定:正确的代码⼀个字节中1的个数必须是偶数,若⾮偶数,则在最⾼位b7添1。
扩展ASCII码
后128个称为扩展ASCII码。许多基于x86的系统都⽀持使⽤扩展(或“⾼”)ASCII。扩展ASCII码允许将每个字符的第8位⽤于确定附加的128个特殊符号字符、外来语字母和图形符号。标准表
Bin (⼆进制)
Oct
(⼋进制)
Dec
(⼗进制)
Hex
(⼗六进制)缩写 / 字符解释
0000 00000000x00NULL(null)空字符0000 00010110x01SOH(start of headline)标题开始0000 00100220x02STX (start of text)正⽂开始0000 00110330x03ETX (end of text)正⽂结束0000 01000440x04EOT (end of transmission)传输结束0000 01010550x05ENQ (enquiry)请求0000 0110066
0x06ACK (acknowledge)收到通知0000 01110770x07BEL (bell)响铃0000 100001080x08BS (backspace)退格0000 100101190x09HT (horizontal tab)⽔平制表符0000 1010012100x0A LF (NL line feed, new line)换⾏键0000 1011013110x0B VT (vertical tab)垂直制表符0000 1100014120x0C FF (NP form feed, new page)换页键0000 1101015130x0D CR (carriage return)回车键0000 1110016140x0E SO (shift out)不⽤切换0000 1111017150x0F SI (shift in)启⽤切换0001 0000020160x10DLE (data link escape)数据链路转义0001 0001021170x11DC1 (device control 1)设备控制1 0001 0010022180x12DC2 (device control 2)设备控制2 0001 0011023190x13DC3 (device control 3)设备控制3 0001 010*******x14DC4 (device control 4)设备控制4 0001 010*******x15NAK (negative acknowledge)拒绝接收0001 0110026220x16SYN (synchronous idle)同步空闲
0001 0111027230x17ETB (end of trans. block)结束传输块0001 1000030240x18CAN (cancel)取消0001 1001031250x19EM (end of medium)媒介结束0001 1010032260x1A SUB (substitute)代替0001 1011033270x1B ESC (escape)换码(溢出) 0001 1100034280x1C FS (file separator)⽂件分隔符0001 1101035290x1D GS (group separator)分组符0001 1110036300x1E RS (record separator)记录分隔符0001 1111037310x1F US (unit separator)单元分隔符0010 0000040320x20(space)空格0010 0001041330x21!叹号0010 0010042340x22"双引号0010 0011043350x23#井号0010 010*******x24$美元符0010 010*******x25%百分号0010 0110046380x26&和号0010 0111047390x27'闭单引号0010 1000
050400x28(开括号0010 1001051410x29)闭括号0010 1010052420x2A*星号0010 1011053430x2B+加号0010 1100054440x2C,逗号0010 1101055450x2D-减号/破折号0010 1110056460x2E.句号0010 1111057470x2F/斜杠0011 0000060480x300字符0 0011 0001061490x311字符1 0011 0010062500x322字符2 0011 0011063510x333字符3
0011 010*******x344字符4 0011 010*******x355字符5 0011 0110066540x366字符6 0011 0111067550x377字符7 0011 1000070560x388字符8 0011 1001071570x399字符9 0011 1010072580x3A:冒号
0011 1010072580x3A:冒号0011 1011073590x3B;分号0011 1100074600x3C<⼩于0011 1101075610x3D=等号0011 1110076620x3E>⼤于0011 1111077630x3F?问号0100 0000100640x40@电⼦邮件符号0100 0001101650x41A⼤写字母A 0100 0010102660x42B⼤写字母B 0100 0011103670x43C⼤写字母C 0100 010*******x44D⼤写字母D 0100 010*******x45E⼤写字母E 0100 0110106700x46F⼤写字母F 0100 0111107710x47G⼤写字母G 0100 1000110720x48H⼤写字母H 0100 1001111730x49I⼤写字母I 0100 1010112740x4A J⼤写字母J 0100 1011113750x4B K⼤写字母K 0100 1100114760x4C L⼤写字母L 0100 1101115770x4D M⼤写字母M 0100 1110116780x4E N⼤写字母N 0100 1111117790x4F O⼤写字母O 0101 0000120800x50P⼤写字母P 0101 0001121810x51Q⼤写字母Q 0101 0010122820x52R⼤写字母R 0101 0011123830x53S⼤写字母S 0101 010*******x54T⼤写字母T
0101 010*******x55U⼤写字母U 0101 0110126860x56V⼤写字母V 0101 0111127870x57W⼤写字母W 0101 1000130880x58X⼤写字母X 0101 1001131890x59Y⼤写字母Y 0101 1010132900x5A Z⼤写字母Z 0101 1011133910x5B[开⽅括号0101 1100134920x5C\反斜杠0101 1101135930x5D]闭⽅括号0101 1110136940x5E^脱字符
常⽤⼤⼩规则
ASCII 码的常⽤⼤⼩规则:$0~9 < A~Z < a~z$。
1)数字⽐字母要⼩,如'7' < 'F';
0101 1110136940x5E ^脱字符0101 1111137950x5F _下划线0110 0000140960x60`开单引号0110 0001141970x61a ⼩写字母a 0110 0010142980x62b ⼩写字母b 0110 0011143990x63c ⼩写字母c 0110 010********x64d ⼩写字母d 0110 010********x65e ⼩写字母e 0110 01101461020x66f ⼩写字母f 0110 01111471030x67g ⼩写字母g 0110 10001501040x68h ⼩写字母h 0110 10011511050x69i ⼩写字母i 0110 10101521060x6A j ⼩写字母j 0110 10111531070x6B k ⼩写字母k 0110 11001541080x6C l ⼩写字母l 0110 11011551090x6D m ⼩写字母m 0110 11101561100x6E n ⼩写字母n 0110 11111571110x6F o ⼩写字母o 0111 00001601120x70p ⼩写字母p 0111 00011611130x71q ⼩写字母q 0111 00101621140x72r ⼩写字母r 0111 00111631150x73s ⼩写字母s 0111 010********x74t ⼩写字母t 0111 0
10********x75u ⼩写字母u 0111 01101661180x76v ⼩写字母v 0111 01111671190x77w ⼩写字母w 0111 10101701200x78x ⼩写字母x 0111 10011711210x79y ⼩写字母y 0111 10101721220x7A z ⼩写字母z 0111 10111731230x7B {开花括号0111 11001741240x7C |垂线0111 11011751250x7D }闭花括号0111 11101761260x7E ~波浪号0111 1111
177
127
0x7F
DEL (delete)
删除字符串常量用转义字符表示
2)数字0⽐数字9要⼩,并按0~9顺序递增,如'3' < '8';3)字母A ⽐字母Z 要⼩,并按A~Z 顺序递增,如'A' < 'Z';4)同个字母的⼤写字母⽐⼩写字母要⼩32,如'A' < 'a' 。
常见字符的ASCII 码
空字符'\0':0,换⾏符'\n':10,回车符'\r':13,空格' ':32,数字'0':48,⼤写字母'A':65,⼩写字母'a':97
扩展
ASCII码是基于拉丁字母的⼀套电脑编码系统,主要⽤于显⽰现代英语和其他西欧语⾔。它是最通⽤的信息交换标准,并等同于国际标准ISO/IEC 646,到⽬前为⽌共
定义了128个字符。
在英语中,⽤128个符号编码便可以表⽰所有,但是⽤来表⽰其他语⾔,128个符号显然是不够的。⼀些欧洲国家就决定,利⽤字节中闲置的最⾼位编⼊新的符号。不同的国家有不同的字母,因此,哪怕它们都使⽤256个符号的编码⽅式,代表的字母却不⼀样。
⾄于亚洲国家的⽂字,使⽤的符号就更多了,汉字就多达10万左右。⼀个字节只能表⽰256种符号,肯定是不够的,就必须使⽤多个字节表达⼀个符号。⽐如,简体中⽂常见的
编码⽅式是GB2312,使⽤两个字节表⽰⼀个汉字,所以理论上最多可以表⽰256 x 256 = 65536个符号 。
转义字符
所有的ASCII码都可以⽤'\'加数字来表⽰(对照上表,'\ddd'三位⼋进制,'\xdd'两位⼗六进制)。
⽽C中定义了⼀些字母前加'\'来表⽰常见的那些不能显⽰的ASCII字符,如'\0','\t','\n'等,就称为转义字符。因为后⾯的字符,都不是它本来的ASCII字符意思了。
注解
'\v'垂直制表和'\f'换页符对屏幕没有任何影响,但会影响打印机执⾏响应操作。
'\n':其实应该叫回车换⾏。换⾏只是换⼀⾏,不改变光标的横坐标;回车只是回到⾏⾸,不改变光标的纵坐标。'\t':光标向后移动四格或⼋格,可以在编译器⾥设置。
'\'':在字符⾥(即单引号⾥)使⽤。在字符串⾥(即双引号⾥)不需要,只要⽤ ' 即可。'\?':其实不必要。只要⽤ ? 即可(在windows VC6 和tc2中验证)。
(整理⾃⽹络)
参考资料:
baike.baidu/item/ASCII/309296
wwwblogs/emanlee/archive/2010/05/14/1735274.html
转义字符
意义
ASCII 码值(⼗进制)
\a 响铃(BEL)007\b 退格(BS)008\f 换页(FF)012\n 换⾏(LF) 010\r 回车(CR)013\t ⽔平制表(HT)009\v 垂直制表(VT)
011\\反斜杠092\?问号字符063\'单引号字符039\"双引号字符034\0空字符(NULL)000\ddd 任意字符三位⼋进制\xhh
任意字符
⼆位⼗六进制

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。