🔤 ASCII 编码
电脑里的每个字符都有自己的「身份证号」:空格 32、'0' 是 48、'A' 是 65、'a' 是 97。记住这四个数,就能推算出一大串字符的号码!
考纲知识点:常见字符的ASCII 编码、字符编码之间的相互转换
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 二级
- (5)了解编码的基本概念,了解ASCII 编码原理,能识别常用字符的ASCII 码(空格:32、“0”:48、“A”:65、“a”:97),并掌握ASCII 码和字符之间相互转换的方法。
📚
先学一学
花 4 分钟读完下面 4 课,再去闯关就不慌啦
1
🔢 ASCII:每个字符的「身份证号」
电脑其实只认数字。我们打的每一个字符(字母、数字、符号、空格),电脑内部都存成一个编号,这套编号规则就叫 ASCII 编码。记住四个「明星号码」,其他都能推出来:
- ␣空格 = 32(看不见,但确实有号)。
- 0️⃣字符 '0' = 48(注意:是 48,不是数字 0!)。
- 🅰️大写 'A' = 65。
- 🅰️小写 'a' = 97。
🌟 一句话
电脑存的不是「A」这个字母,而是数字 65;显示时再按 ASCII 表翻回「A」。所以字符参与运算,玩的是它背后的编号。
💡 口诀:空格 32、'0' 48、'A' 65、'a' 97,四个号码牢牢记。
🌟 行业实际:为什么需要编码?
电脑只懂 0/1,不同国家还想用自己的文字(中文、阿拉伯文)。ASCII 是最早、最基础的英文编码(128 个),后来才有了能装下汉字的 GBK 和国标 UTF-8(全球通用)。今天你发的每条微信,底层都是一串编码号。
💡 口诀:电脑只认号,ASCII 是英文的身份证;汉字靠 GBK/UTF-8。
2
📐 字母与数字的规律
ASCII 表排得很整齐,记住规律就能推算任意字符:
- 🔤字母连着排:大写 'A'=65 … 'Z'=90(紧挨着);小写 'a'=97 … 'z'=122。所以 'C' 是第 3 个大写字母 = 65+2 = 67。
- ↕️大小写差 32:'a' = 'A' + 32。想转大小写,加或减 32 就搞定。
- 9️⃣数字字符 '0'~'9' = 48~57:判断一个字符是不是数字,就看 '0' <= ch && ch <= '9'。
📝 跟着算一算
'A'=65 → 'B'=66 → 'C'=67
'0'=48 → '1'=49 → … → '9'=57
'a'=97 → 比 'A' 大 32
'0'=48 → '1'=49 → … → '9'=57
'a'=97 → 比 'A' 大 32
知道一个就能推出旁边所有:字母按顺序排队,每往后一个加 1。
💡 口诀:字母连着排,大写 65 起、小写 97 起;大小写差 32。
🆚 易混对比:'0' 不是 0
· 字符 '0' 的码值是 48,它是「字」,不是数字。
· 数字 0 就是 0 这个数本身。
所以判断「是不是数字字符」要用 '0' <= ch && ch <= '9',不能写成 0 <= ch && ch <= 9(那是判断整数 0~9,不是字符)。
· 数字 0 就是 0 这个数本身。
所以判断「是不是数字字符」要用 '0' <= ch && ch <= '9',不能写成 0 <= ch && ch <= 9(那是判断整数 0~9,不是字符)。
💡 口诀:'0' 是 48 不是 0;判断数字字符用单引号包住。
3
🎯 字符玩「加减游戏」= 按编号算
字符参与运算时,电脑用的是它的 ASCII 码值,不是它长什么样:
🧮 跟着算一算(真题同款)
· 'F' + 1 = 70 + 1 = 71 = 'G'(往后一个字母)
· '9' + '1' = 57 + 49 = 106
· '5' + 4 = 53 + 4 = 57 = '9'
· (char)(a + b - '0'):把两个数字字符「相加」变回一个字符('3'+'6'-'0'=51+54-48=57='9')。
· '9' + '1' = 57 + 49 = 106
· '5' + 4 = 53 + 4 = 57 = '9'
· (char)(a + b - '0'):把两个数字字符「相加」变回一个字符('3'+'6'-'0'=51+54-48=57='9')。
💡 口诀:字符运算看码值;'F'+1='G'、'9'+'1'=106、'5'+4='9'。
⚠️ 最容易踩的坑:'4' % '2' 不是 0!
'4' % '2' 等于 52 % 50 = 2(按 ASCII 码值 52、50 取余)。只要看到字符在算数,先换成码值再算,千万别当成数字 4 % 2 = 0!
💡 口诀:字符运算看码值;大小写差 32;'0'~'9' 是 48~57;'4'%'2'≠0。
4
🧠 实战推算与易错对比
把前面学的拼起来,就能秒答真题式问题。记住:先想清每个字符的码值,再按数学算。
📝 真题串讲(含干扰项辨析)
· 'C' = 67:'A'=65,C 第 3 个 → 65+2=67(干扰项 69 是把 'C' 当成小写 'c' 的 99 了)。
· 判断数字字符:必须用 '0' <= a && a <= '9'(干扰项 0 <= a && a <= 9 是判断整数,a >= '0' || a <= '9' 用了「或」会全成立)。
· (char)('3'+'6'-'0') = '9':51+54-48=57='9'(干扰项 '39' 是把字符拼字符串了,这里是算数)。
· 判断数字字符:必须用 '0' <= a && a <= '9'(干扰项 0 <= a && a <= 9 是判断整数,a >= '0' || a <= '9' 用了「或」会全成立)。
· (char)('3'+'6'-'0') = '9':51+54-48=57='9'(干扰项 '39' 是把字符拼字符串了,这里是算数)。
💡 口诀:先换码值再算;判断数字字符用 '0'~'9' 区间加 &&。
🆚 易混对比:字符运算 vs 数字运算
· '9' + '1' = 106(码值相加),不是 "91"(字符串拼接是另一回事)。
· '5' + 4 = 57 = '9',字符加数字得到字符。
· 码值排序:空格 32 < '0' 48 < 'A' 65 < 'a' 97。
· '5' + 4 = 57 = '9',字符加数字得到字符。
· 码值排序:空格 32 < '0' 48 < 'A' 65 < 'a' 97。
💡 口诀:字符相加是码值相加;空格<数字<大写<小写。
🎯
闯关小锦囊 · 考点提醒
- 四个基准值:空格 32、'0' = 48、'A' = 65、'a' = 97,其他字符都能据此推出('C'=67,干扰项 99 是小写 'c')。
- 大小写差 32:'a' = 'A' + 32;字母连排:'A'~'Z' 是 65~90,'a'~'z' 是 97~122。
- 数字字符范围是 '0'~'9' = 48~57;判断数字字符用 '0' <= ch && ch <= '9'(干扰项 0 <= ch && ch <= 9 是判断整数、a >= '0' || a <= '9' 用「或」会恒真,都错)。
- 字符参与运算按 ASCII 码值:'F'+1='G'(71)、'9'+'1'=106、'5'+4=57='9';(char)(a+b-'0') 把数字字符相加变字符='9'(干扰项 '39' 是字符串拼接,错)。
- 易错:'4' % '2' = 52 % 50 = 2,不是 0(干扰项以为是 4%2=0 就上钩了)!
- 码值排序:空格 32 < '0' 48 < 'A' 65 < 'a' 97。
🎮
学完了?来闯关!
下面 14 个小挑战,点一点就能玩
Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。