Skip to content

2.3 非数值数据表示

本节内容相对简单,主要介绍字符和汉字在计算机中的编码表示,重点是ASCII码和汉字编码的层次结构。

核心概念

1. 逻辑数据表示

  • 逻辑数据(布尔值)就是 truefalse
  • 在计算机中,通常用 1 代表 true0 代表 false
  • 一个n位的数据可以看作n个独立的逻辑变量。

2. 字符表示 (ASCII码)

  • ASCII (American Standard Code for Information Interchange):是目前最通用的西文字符编码。
  • 标准ASCII:用7位二进制编码,可以表示 27=128 个字符。
    • 包括:10个数字 (0-9),52个大小写字母 (A-Z, a-z),34个专用符号,32个控制字符。
    • 在计算机中通常用一个字节(8位)存储,最高位为0。
  • 扩展ASCII:用8位二进制编码,可以表示 28=256 个字符。最高位为1的部分定义了额外的符号和图形字符。

易考点

  • 记住常见字符的ASCII码值,特别是:
    • '0' 的ASCII码是 48 (0x30)。
    • 'A' 的ASCII码是 65 (0x41)。
    • 'a' 的ASCII码是 97 (0x61)。
  • 利用ASCII码的顺序性进行大小写转换(相差32)或数字字符与数值的转换。

3. 汉字表示 (难点)

汉字数量庞大、字形复杂,其编码也分为多个层次。

  • 汉字输入码:用于从键盘输入汉字,如拼音码、五笔字型码。不唯一,主要为了输入方便。

  • 汉字国标码 (GB 2312)

    • 也称交换码,用于不同系统间的信息交换。
    • 使用两个字节表示一个汉字,每个字节只使用低7位(兼容标准ASCII)。
    • 收录了6763个常用汉字,分为94个区,每个区94个位。
    • 区位码:用四位十进制数表示汉字位置,前两位是区号,后两位是位号。
    • 国标码与区位码的关系: 国标码(十六进制) = 区位码(十六进制) + 2020H
      • 原因:将区号和位号各加上32 (0x20),是为了避免与ASCII中的控制字符冲突。
  • 汉字机内码

    • 汉字在计算机内部存储、处理、传输时使用的编码。
    • 目的:为了与西文ASCII码区分开。
    • 与国标码的关系: 机内码 = 国标码 + 8080H
      • 原因:将国标码的两个字节的最高位都置为 1。这样,在处理一个字节流时,如果字节的最高位是 0,则为ASCII字符;如果是 1,则它和下一个字节共同组成一个汉字。
  • 汉字字形码

    • 也称字模码输出码,用于显示和打印汉字。
    • 通常是点阵形式,如 16x1624x24 等。
    • 存储空间计算:一个 N x N 点阵的汉字所占字节数为 N×N÷8
      • 例如,一个 16x16 的汉字字模需要 16×16÷8=32 字节。

难点与考点

  • 理解汉字编码的四个层次及其作用。
  • 熟练掌握 区位码 -> 国标码 -> 机内码 的转换过程和原因。这是计算题的常考点。
  • 掌握字形码所需存储空间的计算方法。