C++ ASCII 码的一些问题
关于ASCII码和转义字符的对应问题,一直都有个困惑。所以今天校验了一下是什么情况。
ASCII字符表:http://www.asciima.com
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
//如何将数字转换成ASCII码对应的字符 char getAscii(int aval) { return char(aval); } //如何将字符转换成ASCII码对应的数字 int ASCII(char c) { return int(c); }
//转义字符的int最后输出结果是其ASCII码
int A=‘\0’; cout<<A<<endl; //输出结果是0,即空格的ASCII字符 int A='\n'; cout<<A<<endl; //输出结果是10;即换行的ASCII字符 int A='\t'; cout<<A<<endl; //输出结果是9;即制表位的ASCII字符
#include<iomanip> int A='1'; cout<<hex<<A<<endl; //the result is 31,即字符对应输出的是其ASCII码
其实所有编程语言,拥有转义字符的原因基本上是两点:一、使用转义字符来表示字符集中定义的字符,比如ASCll里面的控制字符及回车换行等字符,这些字符都没有现成的文字代号。所以只能用转义字符来表示 。二、某一些特定的字符在编辑语言中被定义为特殊用途的字符。
也就是说在ASCII码可以表示的字符中,由于控制字符如NUL,CR等不能直接用字符表示,于是我们就用到了转义字符来表示这些,使得编译器可以知道这些转义字符代表的是什么意思。