您的位置:首页 > 其它

ASCII和转义字符的区别与联系

2014-11-30 11:11 197 查看
转义字符中的数都是八进制的。

编译器语言c存储在以前学习C语言的过程中,只是对ASCII码和转义字符有一个简单的了解,最近遇到一些关于这方面的问题,深入研究了一下,总结下来,作为以后学习参考。

ASCII字符集

计算机用数字码来存储字符。ASCII码(美国标准信息交换码)是最常用的编码。

ASCII码表:http://imgsrc.baidu.com/baike/pic/item/f6428f8f7c5d36e9503d9262.jpg

转义字符

转义序列必须用但括号括起来

在ASCII码中有些字符是打印不出来的,如一些动作字符,这些字符叫做“非打印字符”,C语言为非打印字符提供了另外一种表示方式。

非打印字符只是ASCII的一个子集

转义字符 对应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

所有的ASCII码都可以通过转义方式表示出来

char test='A'; (编译器将其转换为相应十进制编码值,即65)

char test='/101';(对应的是A的八进制表示方式,需要注意的是:/ 后最多只能是三位,若写成'/0101 则出错,但是若编码为/007,则可以写成/07或者是/7')

char test='/0x41';(对应的是A的十六进制表示方式)

不使用转义方式表示

char test=65;

char test=0101; (注:其中前面的0表示为八进制表示,若没有0,表示的是e)

char test=0x41;

对于转义字符,除了上面的两种表示方式以外,还有第三种表示方式,假设蜂鸣字符

ASCII码值:char beep=7(或者用八进制或者十六进制表示);

C中提供的特殊的符号序列:char beep='/a'(或者转义的八进制和十六进制表示)

转义的方式表示:char beep=‘/007'

转义字符的另外用法:引用特殊的字符常量,如引用/ 、'、 ",写成//、/'、和/"

需要注意的几个方面:

无论是普通字符还是转义序列,如果作为双引号中字符集合的一部分,则无需引号 如:printf("Hello!7/n"),打印Hello!7

什么时候使用ASCII码,什么时候使用转义序列呢?如果要在某个转义序列和其对应的ASCII码之间做出选择,则应当使用转义序列。比如选择'/f'而不是'/014'。首先,转义字符更容易记忆;其次,这样做使程序的可移植性更好。因为在不使用ASCII码的系统中,'/f'仍然适用

当需要数值编码时,为什么使用'/032'而不是032?首先,'/032'更能清晰地表达程序员表示一个字符编码的意图;其次,'/032'这样的转义序列可以嵌入到C字符串中,而032不可以,例如:"Hello!/007/n"中就嵌入了'/007'

使用ASCII时要注意数字和数字字符的区别。例如字符4的ASCII码值为52.写法'4'表示符号4而不是数值4。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: