Skip to content

L2_04 ASCII 编码

一、ASCII 编码概述

1.1 定义

ASCII(American Standard Code for Information Interchange)是美国信息交换标准代码。

1.2 特点

  • 使用7位二进制数表示字符
  • 共128个字符(0-127)
  • 包含控制字符和可打印字符

二、常见字符的 ASCII 编码

2.1 数字字符

字符ASCII值字符ASCII值
'0'48'5'53
'1'49'6'54
'2'50'7'55
'3'51'8'56
'4'52'9'57

2.2 大写字母

字符ASCII值字符ASCII值
'A'65'N'78
'B'66'O'79
............
'Z'90

2.3 小写字母

字符ASCII值字符ASCII值
'a'97'n'110
'b'98'o'111
............
'z'122

2.4 特殊字符

字符ASCII值字符ASCII值
' '32'!'33
'@'64'#'35
'$'36'%'37

三、字符编码之间的相互转换

3.1 字符转 ASCII 值

cpp
char c = 'A';
int ascii = (int)c;  // ascii = 65

3.2 ASCII 值转字符

cpp
int ascii = 65;
char c = (char)ascii;  // c = 'A'

3.3 大小写转换

cpp
char lower = 'a';
char upper = lower - 32;  // upper = 'A'

char upper2 = 'Z';
char lower2 = upper2 + 32;  // lower2 = 'z'

3.4 判断字符类型

cpp
char c = '5';
bool isDigit = (c >= '0' && c <= '9');  // true
bool isUpper = (c >= 'A' && c <= 'Z');  // false
bool isLower = (c >= 'a' && c <= 'z');  // false

四、扩展 ASCII 码

4.1 定义

  • 使用8位二进制数
  • 共256个字符(0-255)
  • 包含特殊符号和非英语字符

4.2 用途

  • 支持更多字符集
  • 用于显示特殊符号和图形字符

五、示例程序

5.1 输出 ASCII 码表

cpp
#include <iostream>
using namespace std;

int main() {
    for (int i = 32; i < 128; i++) {
        cout << (char)i << " : " << i << endl;
    }
    return 0;
}

5.2 字符统计

cpp
#include <iostream>
using namespace std;

int main() {
    char c;
    int digits = 0, letters = 0;
    
    while (cin >> c) {
        if (c >= '0' && c <= '9') digits++;
        else if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) letters++;
    }
    
    cout << "数字: " << digits << endl;
    cout << "字母: " << letters << endl;
    
    return 0;
}

百炼成钢,融会贯通