这个非常重要,先写一个程序
# include <stdio.h>
int main(void)
{
char ch = 'A';
printf("ch = %c\n",ch);
return 0;
}
这个是将字符’A’输出了,但是如果将printf()中的%c改成%d会怎么样呢?编译一下试试,它不会报错,想想为什么不会报错?因为不管什么类型的数据,在内存中都是二进制的,所以不会报错。%c和%d只是输出时显示的方式不一样而已。
当将%c改成%d并链接,执行后输出就不会是“A”了,而是一个数字“65”。
这说明字符“A”,是以65这个十进制数对应的二进制代码存储的。那么到底什么叫做ASCII呢?ASCII就是规定了某个字符使用哪个整数保存,因为计算机中保存的都是二进制代码,所以不可能讲一个字母直接保存到计算机中。他要先转换为二进制代码才能保存进去。而每个二进制代码都对应一个十进制数,这就是ASCII
ASCII不仅是一个值,更是一个规定。它规定了每个字符使用哪个整数表示。比如它规定了“0”用48表示,“A”用65表示,‘a’用97表示。。。。为了便于表述,通常也称这些值为ASCII值。那么ASCII值的范围是多少呢?我们之前说过,一个字符栈一个字节,而一个字节所能表示的十进制数的范围为0-255,所以ASCII值的范围就是0-255.其中常用的 0-127,剩下的就是128-255称为扩展ASCII,我们一般不用,知道就行了。事实上0-127中也有字符‘0’-‘9’,‘A’-‘Z’,‘a’-‘z’常用。
一定要记住什么是ASCII,但是值不需要记住,如果要使用查一下ASCII表就行了。