计算机内部以二进制形式存储数据,但我们使用的语言是基于字符的。为了在计算机中存储和处理文本,需要一种方法将字符映射到数字,以便计算机能够理解和处理文本数据。
由于不同的系统使用了不同的编码,因此为了解决编码统一的问题,人类创造了ASCII编码,其中每个字符都有一个唯一的对应数值。
获取ASCII编码
C++是区分数据类型的,不同的数据类型之间并非都可以直接转换。如果把字符的ASCII编码视为数值,那么强行将字符类型转换成数字类型,会不会就变成了字符对应的ASCII编码呢?
运行程序:
请输入一个字符:a a的ASCII编码是:97
(1) char c 声明一个字符变量c。
(2) asciiNum = c 将字符变量的值赋给整数变量asciiNum。
ASCII编码对照表
将程序结果与对照表进行比较,看看程序运行是否正确。
可见将字符类型转换成数值类型,转换后的数值就是对应的ASCII码。
逆向思维
如果把字符后强行转换成数值是ASCII码,那么把数值强行转换成字符也会对应上吗?
运行程序:
请输入一个整数字:65 65 ASCII编码对应的字符是:A
数值强行转换成字符也对应上了。
加一加
英文字母一共有26个,那么a到z间隔了多少个字母呢?
运行程序:
a + 25 = z
给'a'加上25,运算了一下就变成'z'。
字母大小写转换
大写字母的A~Z对应的ASCII编码是65~90,小写字母的a~z对应的ASCII编码是97~122,同一字母大小写之间相差32。
大写字母转换为小写字母
运行程序:
请输入大写字母:G G的小写字母是:g
小写字母转换成大写字母
运行程序:
请输入小写字母:e e的大写字母是:E
巩固练习
(1)ASCII编码中,小写字母a的ASCII码值是多少?( )
A.96
B.97
C.65
D.66
(2)如果希望将大写字母'A'转换为小写字母'a',应该将ASCII码值减去多少?( )
A.25
B.26
C.27
D.32
(3)编写一个C++程序,接收输入的小写字母,输出它的ASCII编码及其对应的大写字母。例如:如果用户输入小写字母a,则程序输出97和大写字母A。