ASCII和轉義字符的區別與聯系


轉義字符中的數都是八進制的。




編譯器語言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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM