2.4.1 ASCII码

所有数据,包括文本和其他特殊字符,都是以二进制形式存储在计算机内存中。这些二进制表示(0、1序列)能够翻译成十进制数。因此,为了利用string变量,必须设计一种方案,将每个字符映射到一个数字。美国信息交换标准代码(ASCII码)为一个基本集的128个字符给出映射的数字。缩写ASCII发音为“askey”。

在这个编码方案中,每个字符对应于一个从0~127的数字。例如,大写字母的编码从65(“A”)~90(“Z”),数字编码从48(“0”)~57(“9”),而空格是32。表2-2列出ASCII码从32~127所对应的字符,而没有在这里显示的编码0~31表示特殊符号或动作,如发出哗哗声(ASCII码是7)或者回车(ASCII码是13)。

表2-2 从32~127的ASCII码

因此,字符串在计算机内存中存储为它的每个字符的ASCII码。例如,当执行以下程序代码时:

S、a和m的ASCII码(分别是83、97和109)存储在连续的内存单元中。

考虑字符串“31.5”和实数31.5,这两个式子看起来类似,但是从程序设计的观点来看,它们大不相同:

·数字31.5在内存中存储为31.5的二进制表示。此外,因为它是一个数字,所以它可以与另一个数字进行加、减、乘或除运算。

·内存中存储的字符串“31.5”把3、1、.和5的ASCII码放置在连续的内存单元中。