课程首页 › 第1部分 › 第13课

第13课 ASCII编码背后的秘密

第1部分 初识 C++ · 顺序结构· 知识点:ASCII编码

ASCII编码背后的秘密(ASCII编码)

计算机内部以二进制形式存储数据,但我们使用的语言是基于字符的。为了在计算机中存储和处理文本,需要一种方法将字符映射到数字,以便计算机能够理解和处理文本数据。

由于不同的系统使用了不同的编码,因此为了解决编码统一的问题,人类创造了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。