GESP 二级 第 04 讲:ASCII 编码与字符运算

本讲定位二级性价比最高的一讲。官方大纲在这一块写得异常具体——“能识别常用字符的 ASCII 码(空格:32、”0”:48、”A”:65、”a”:97),并掌握 ASCII 码和字符之间相互转换的方法”。把四个数字直接写进大纲,等于明说了要考。 这一讲把一级第 04 讲”char 的本质是小整数”这条性质彻底用起来,学完之后大小写转换、字符转数字这两类操作会跟你到八级。

对应官方大纲:二级知识块 4「ASCII 编码」——常见字符的 ASCII 编码、字符编码之间的相互转换。

前置知识:一级第 04 讲(char 占 1 字节、本质是小整数)、第 05 讲(算术运算)、第 06 讲(关系运算)。

代码说明:本讲所有代码均已用 g++ 11.5(-std=c++11)编译运行验证,输出结果即为文中标注结果。


1. 先看两道真题

第一道(单选)

若字符 'A' 的 ASCII 码值为 65,则字符 'F' 的 ASCII 码值是( ) A. 69 B. 70 C. 71 D. 无法确定

第二道(单选)

char c = '8';,则表达式 c - '0' 的值是( ) A. 8 B. 56 C. '8' D. 编译错误

答案:第一道选 B,第二道选 A。

这两道题正好是本讲的两条主线:编码的连续性字符与数字的互转


2. 为什么要有编码

计算机里只有 0 和 1,存不了字母,只能存数字。于是人们约定:给每个字符编一个号,存的时候存号,显示的时候按号查表还原成字符。

这张”字符 ↔︎ 数字”的对照表,就是 ASCII 码表

ASCII 全称 American Standard Code for Information Interchange,中文叫”美国信息交换标准代码”。

⚠️ 两个高频考点标准 ASCII 是 7 位、128 个字符汉字不在 ASCII 里(汉字用 GB2312、GBK、UTF-8 等编码,一个汉字通常占 2~3 字节)。