跳转至

ASCII 码

字符与编码

ASCII 码,给字符编了号。

它使用 7 位二进制,共有 128 个编码,编号从 0 到 127。

需要记忆的 ASCII 码:

'A' 65
'a' 97
'0' 48

刚开始,其他的不用硬记。

其他字符的 ASCII 码,怎么得到?

大写字母 A~Z、小写字母 a~z、数字字符 0~9,各自连续排列。

知道了 'A' 是 65,就能推出 'B' 是 66,'C' 是 67。

也可以通过代码,直接输出。

char c = 'Z';
cout << (int)c; // 输出90

直接输出 c,显示的是字符;转成 int 再输出,显示的是编码值。

这里按做题时常用的 ASCII 编码环境来讲。

char c = 'A';
cout << c;      // 输出A
cout << (int)c; // 输出65

注意:字符 '0' 和整数 0 不是一回事。

字符 '0' 的 ASCII 码是 48。

大小写转换

我们已经知道了大 A 是 65,小 a 是 97,两者相差 32。

对应的小写字母,比大写字母的 ASCII 码大 32。

char c = 'A';
c += 32;
cout << c; // 输出a

大写变小写,加 32;小写变大写,减 32。

char c = 'b';
c -= 32;
cout << c; // 输出B

注意先看字符是不是对应的英文字母,不能拿任意字符加减 32。

数字字符转整数

char c = '7';
int x = c - '0';
cout << x; // 输出7

数字字符是连续排列的,减去 '0',就得到它表示的整数。

(int)c 得到的是编码值,c - '0' 才是把数字字符转成对应的整数。

这里的 c 要是 '0' 到 '9' 中的一个字符。