Lecture 5: Data Representation 2 数 据 的 机 器 级 表 示 2
十 进 制 数 的 表 示 数 值 数 据 (numerical data) 的 两 种 表 示 Binary ( 二 进 制 数 ) o 定 点 整 数 :Fixed-point number (integer) o Unsigned and signed int o 浮 点 数 :Floating-point number (real number) Decimal ( 十 进 制 数 ) o 用 ASCII 码 表 示 o 用 BCD(Binary coded Decimal) 码 表 示 计 算 机 中 为 什 么 要 用 十 进 制 数 表 示 数 值? 日 常 使 用 的 都 是 十 进 制 数, 所 以, 计 算 机 外 部 都 使 用 十 进 制 数 在 一 些 有 大 量 数 据 输 入 / 出 的 系 统 中, 为 减 少 二 进 制 数 和 十 进 制 数 之 间 的 转 换, 在 计 算 机 内 部 直 接 用 十 进 制 数 表 示 数 值
用 ASCII 码 表 示 十 进 制 数 前 分 隔 数 字 串 符 号 位 单 独 用 一 个 字 节 表 示, 位 于 数 字 串 之 前 正 号 用 + 的 ASCII 码 (2BH) 表 示 ; 负 号 用 - 的 ASCII 码 (2DH) 表 示 例 : 十 进 制 数 +236 表 示 为 : 2B 32 33 36H 0010 1011 0011 0010 0011 0011 0011 0110B 十 进 制 数 -2369 表 示 为 : 2D 32 33 36 39H 0010 1101 0011 0010 0011 0011 0011 0110 0011 1001B 后 嵌 入 数 字 串 符 号 位 嵌 入 最 低 位 数 字 的 ASCII 码 高 4 位 中 比 前 分 隔 方 式 省 一 个 字 节 正 数 不 变 ; 负 数 高 4 位 变 为 0111. 例 : 十 进 制 数 +236 表 示 为 : 32 33 36H 0011 0010 0011 0011 0011 0110B 十 进 制 数 -2369 表 示 为 : 32 33 36 79H 0011 0010 0011 0011 0011 0110 0111 1001B 缺 点 : 占 空 间 大, 且 需 转 换 成 二 进 制 数 或 BCD 码 才 能 计 算
用 BCD 码 表 示 十 进 制 数 编 码 思 想 : 每 个 十 进 数 位 至 少 有 4 位 二 进 制 表 示 而 4 位 二 进 制 位 可 组 合 成 16 种 状 态, 去 掉 10 种 状 态 后 还 有 6 种 冗 余 状 态 编 码 方 案 1. 十 进 制 有 权 码 - 每 个 十 进 制 数 位 的 4 个 二 进 制 位 ( 称 为 基 2 码 ) 都 有 一 个 确 定 的 权 8421 码 是 最 常 用 的 十 进 制 有 权 码 也 称 自 然 BCD(NBCD) 码 2. 十 进 制 无 权 码 - 每 个 十 进 制 数 位 的 4 个 基 2 码 没 有 确 定 的 权 在 无 权 码 方 案 中, 用 的 较 多 的 是 余 3 码 和 格 雷 码 3. 其 他 编 码 方 案 (5 中 取 2 码 独 热 码 等 ) 符 号 位 的 表 示 : + :1100 ; - :1101 例 :+236=(1100 0010 0011 0110) 8421 ( 占 2 个 字 节 ) - 2369=(1101 0000 0010 0011 0110 1001) 8421 ( 占 3 个 字 节 ) 补 0 以 使 数 占 满 一 个 字 节
逻 辑 数 据 的 编 码 表 示 表 示 用 一 位 表 示 真 :1 / 假 :0 N 位 二 进 制 数 可 表 示 N 个 逻 辑 数 据, 或 一 个 位 串 运 算 按 位 进 行 如 : 按 位 与 / 按 位 或 / 逻 辑 左 移 / 逻 辑 右 移 等 识 别 逻 辑 数 据 和 数 值 数 据 在 形 式 上 并 无 差 别, 也 是 一 串 0/1 序 列, 机 器 靠 指 令 来 识 别
西 文 字 符 的 编 码 表 示 特 点 是 一 种 拼 音 文 字, 用 有 限 几 个 字 母 可 拼 写 出 所 有 单 词 只 对 有 限 个 字 母 和 数 学 符 号 标 点 符 号 等 辅 助 字 符 编 码 所 有 字 符 总 数 不 超 过 256 个, 使 用 7 或 8 个 二 进 位 可 表 示 表 示 ( 常 用 编 码 为 7 位 ASCII 码 ) 要 求 必 须 熟 悉 数 字 字 母 和 空 格 (SP) 的 表 示 十 进 制 数 字 :0/1/2 /9 英 文 字 母 :A/B/ /Z/a/b/ /z 专 用 符 号 :+/-/%/*/&/ 控 制 字 符 ( 不 可 打 印 或 显 示 ) 操 作 字 符 串 操 作, 如 : 传 送 / 比 较 等
汉 字 及 国 际 字 符 的 编 码 表 示 特 点 汉 字 是 表 意 文 字, 一 个 字 就 是 一 个 方 块 图 形 汉 字 数 量 巨 大, 总 数 超 过 6 万 字, 给 汉 字 在 计 算 机 内 部 的 表 示 汉 字 的 传 输 与 交 换 汉 字 的 输 入 和 输 出 等 带 来 了 一 系 列 问 题 编 码 形 式 有 以 下 几 种 汉 字 代 码 : 输 入 码 : 对 汉 字 用 相 应 按 键 进 行 编 码 表 示, 用 于 输 入 内 码 : 用 于 在 系 统 中 进 行 存 储 查 找 传 送 等 处 理 字 模 点 阵 或 轮 廓 描 述 : 描 述 汉 字 字 模 点 阵 或 轮 廓, 用 于 显 示 / 打 印 问 题 : 西 文 字 符 有 没 有 输 入 码? 有 没 有 内 码? 有 没 有 字 模 点 阵 或 轮 廓 描 述?
汉 字 的 输 入 码 向 计 算 机 输 入 汉 字 的 方 式 : 1 手 写 汉 字 联 机 识 别 输 入, 或 者 是 印 刷 汉 字 扫 描 输 入 后 自 动 识 别, 这 两 种 方 法 现 均 已 达 到 实 用 水 平 2 用 语 音 输 入 汉 字, 虽 然 简 单 易 操 作, 但 离 实 用 阶 段 还 相 差 很 远 3 利 用 英 文 键 盘 输 入 汉 字 : 每 个 汉 字 用 一 个 或 几 个 键 表 示, 这 种 对 每 个 汉 字 用 相 应 按 键 进 行 的 编 码 称 为 汉 字 输 入 码, 又 称 外 码 输 入 码 的 码 元 为 按 键 是 最 简 便 最 广 泛 的 汉 字 输 入 方 法 常 用 的 方 法 有 : 搜 狗 拼 音 五 笔 字 型 智 能 ABC 微 软 拼 音 等 使 用 汉 字 输 入 码 的 原 因 : 1 键 盘 面 向 西 文 设 计, 一 个 或 两 个 西 文 字 符 对 应 一 个 按 键, 非 常 方 便 2 汉 字 是 大 字 符 集, 专 门 的 汉 字 输 入 键 盘 由 于 键 多 查 找 不 便 成 本 高 等 原 因 而 几 乎 无 法 采 用
字 符 集 与 汉 字 的 内 码 问 题 : 西 文 字 符 常 用 的 内 码 是 什 么? 其 内 码 就 是 ASCII 码 对 于 汉 字 内 码 的 选 择, 必 须 考 虑 以 下 几 个 因 素 : 1 不 能 有 二 义 性, 即 不 能 和 ASCII 码 有 相 同 的 编 码 2 尽 量 与 汉 字 在 字 库 中 的 位 置 有 关, 便 于 汉 字 查 找 和 处 理 3 编 码 应 尽 量 短 国 标 码 ( 国 标 交 换 码 ) 1981 年 我 国 颁 布 了 信 息 交 换 用 汉 字 编 码 字 符 集 基 本 集 (GB2312 80) 该 标 准 选 出 6763 个 常 用 汉 字, 为 每 个 汉 字 规 定 了 标 准 代 码, 以 供 汉 字 信 息 在 不 同 计 算 机 系 统 间 交 换 使 用 可 在 汉 字 国 标 码 的 基 础 上 产 生 汉 字 机 内 码
GB2312-80 字 符 集 由 三 部 分 组 成 : 1 字 母 数 字 和 各 种 符 号, 包 括 英 文 俄 文 日 文 平 假 名 与 片 假 名 罗 马 字 母 汉 语 拼 音 等 共 687 个 2 一 级 常 用 汉 字, 共 3755 个, 按 汉 语 拼 音 排 列 3 二 级 常 用 汉 字, 共 3008 个, 不 太 常 用, 按 偏 旁 部 首 排 列 汉 字 的 区 位 码 码 表 由 94 行 94 列 组 成, 行 号 为 区 号, 列 号 为 位 号, 各 占 7 位 指 出 汉 字 在 码 表 中 的 位 置, 共 14 位, 区 号 在 左 位 号 在 右 汉 字 的 国 标 码 每 个 汉 字 的 区 号 和 位 号 各 自 加 上 32(20H), 得 到 其 国 标 码 国 标 码 中 区 号 和 位 号 各 占 7 位 在 计 算 机 内 部, 为 方 便 处 理 与 存 储, 前 面 添 一 个 0, 构 成 一 个 字 节
汉 字 内 码 至 少 需 2 个 字 节 才 能 表 示 一 个 汉 字 内 码 为 什 么? 由 汉 字 的 总 数 决 定! 可 在 GB2312 国 标 码 的 基 础 上 产 生 汉 字 内 码 为 与 ASCII 码 区 别, 将 国 标 码 的 两 个 字 节 的 第 一 位 置 1 后 得 到 一 种 汉 字 内 码 例 如, 汉 字 大 在 码 表 中 位 于 第 20 行 第 83 列 因 此 区 位 码 为 0010100 1010011, 国 标 码 为 00110100 01110011, 即 3473H 前 面 的 34H 和 字 符 4 的 ACSII 码 相 同, 后 面 的 73H 和 字 符 s 的 ACSII 码 相 同, 将 每 个 字 节 的 最 高 位 各 设 为 1 后, 就 得 到 其 内 码 :B4F3H (1011 0100 1111 0011B), 因 而 不 会 和 ASCII 码 混 淆
国 际 字 符 集 国 际 字 符 集 的 必 要 性 不 同 地 区 使 用 不 同 字 符 集 内 码, 如 中 文 GB2312 / Big5 日 文 Shift-JIS / EUC-JP 等 在 安 装 中 文 系 统 的 计 算 机 中 打 开 日 文 文 件, 会 出 现 乱 码 为 使 所 有 国 际 字 符 都 能 互 换, 必 须 创 建 一 种 涵 盖 全 部 字 符 的 多 字 符 集 国 际 多 字 符 集 通 过 对 各 种 地 区 性 字 符 集 规 定 使 用 范 围 来 唯 一 定 义 各 字 符 的 编 码 国 际 标 准 ISO/IEC 10646 提 出 了 一 种 包 括 全 世 界 现 代 书 面 语 言 文 字 所 使 用 的 所 有 字 符 的 标 准 编 码, 有 4 个 字 节 编 码 (UCS-4) 和 2 字 节 编 码 (UCS-2) 我 国 ( 包 括 香 港 台 湾 地 区 ) 与 日 本 韩 国 联 合 制 订 了 一 个 统 一 的 汉 字 字 符 集 (CJK 编 码 ), 共 收 集 了 上 述 不 同 国 家 和 地 区 共 约 2 万 多 汉 字 及 符 号, 采 用 2 字 节 编 码 ( 即 :UCS-2), 已 被 批 准 为 国 家 标 准 (GB13000 ) Windows 操 作 系 统 ( 中 文 版 ) 已 采 用 中 西 文 统 一 编 码, 收 集 了 中 日 韩 三 国 常 用 的 约 2 万 汉 字, 称 为 Unicode, 采 用 2 字 节 编 码, 与 UCS-2 一 致
汉 字 的 字 模 点 阵 码 和 轮 廓 描 述 为 便 于 打 印 显 示 汉 字, 汉 字 字 形 必 须 预 先 存 在 机 内 字 库 (font): 所 有 汉 字 形 状 的 描 述 信 息 集 合 不 同 字 体 ( 如 宋 体 仿 宋 楷 体 黑 体 等 ) 对 应 不 同 字 库 从 字 库 中 找 到 字 形 描 述 信 息, 然 后 送 设 备 输 出 字 形 主 要 有 两 种 描 述 方 法 : 字 模 点 阵 描 述 ( 图 像 方 式 ) 轮 廓 描 述 ( 图 形 方 式 ) - 直 线 向 量 轮 廓 - 曲 线 轮 廓 (True Type 字 形 )
数 据 的 基 本 宽 度 比 特 (bit) 是 计 算 机 中 处 理 存 储 传 输 信 息 的 最 小 单 位 二 进 制 信 息 的 计 量 单 位 是 字 节 (Byte), 也 称 位 组 现 代 计 算 机 中, 存 储 器 按 字 节 编 址 字 节 是 最 小 可 寻 址 单 位 (addressable unit ) 除 比 特 和 字 节 外, 还 经 常 使 用 字 (word) 作 为 单 位 字 和 字 长 的 概 念 不 同
数 据 的 基 本 宽 度 字 和 字 长 的 概 念 不 同 字 长 指 数 据 通 路 的 宽 度 ( 数 据 通 路 指 CPU 内 部 数 据 流 经 的 路 径 以 及 路 径 上 的 部 件, 主 要 是 CPU 内 部 进 行 数 据 运 算 存 储 和 传 送 的 部 件, 这 些 部 件 的 宽 度 基 本 上 要 一 致, 才 能 相 互 匹 配 因 此, 字 长 等 于 CPU 内 部 总 线 的 宽 度 运 算 器 的 位 数 通 用 寄 存 器 的 宽 度 等 ) 字 表 示 被 处 理 信 息 的 单 位, 用 来 度 量 数 据 类 型 的 宽 度 字 和 字 长 的 宽 度 可 以 一 样, 也 可 不 同 例 如,x86 体 系 结 构 定 义 字 的 宽 度 为 16 位, 但 从 386 开 始 字 长 就 是 32 位 了
数 据 量 的 度 量 单 位 存 储 二 进 制 信 息 时 的 度 量 单 位 要 比 字 节 或 字 大 得 多 容 量 经 常 使 用 的 单 位 有 : 千 字 节 (KB),1KB=2 10 字 节 =1024B 兆 字 节 (MB),1MB=2 20 字 节 =1024KB 千 兆 字 节 (GB),1GB=2 30 字 节 =1024MB 兆 兆 字 节 (TB),1TB=2 40 字 节 =1024GB 通 信 中 的 带 宽 使 用 的 单 位 有 : 千 比 特 / 秒 (kb/s),1kbps=10 3 b/s=1000 bps 兆 比 特 / 秒 (Mb/s),1Mbps=10 6 b/s =1000 kbps 千 兆 比 特 / 秒 (Gb/s),1Gbps=10 9 b/s =1000 Mbps 兆 兆 比 特 / 秒 (Tb/s),1Tbps=10 12 b/s =1000 Gbps 如 果 把 b 换 成 B, 则 表 示 字 节 而 不 是 比 特 ( 位 ) 例 如,10MBps 表 示 10 兆 字 节 / 秒
程 序 中 数 据 类 型 的 宽 度 高 级 语 言 支 持 多 种 类 型 多 种 长 度 的 数 据 例 如,C 语 言 中 Char 类 型 的 宽 度 为 1 个 字 节, 可 表 示 一 个 字 符 ( 非 数 值 数 据 ), 也 可 表 示 一 个 8 位 的 整 数 ( 数 值 数 据 ) 不 同 机 器 上 表 示 的 同 一 种 类 型 的 数 据 可 能 宽 度 不 同 必 须 确 定 相 应 的 机 器 级 数 据 表 示 方 式 和 相 应 的 处 理 指 令 ( 在 第 五 章 指 令 系 统 介 绍 具 体 指 令 ) 从 表 中 看 出 : 同 类 型 数 据 并 不 是 所 有 机 器 都 采 用 相 同 的 宽 度, 分 配 的 字 节 数 随 机 器 字 长 和 编 译 器 的 不 同 而 不 同 C 语 言 中 数 值 数 据 类 型 的 宽 度 ( 单 位 : 字 节 ) C 声 明 char short int int long int 典 型 32 位 机 器 1 2 4 4 Compaq Alpha 机 器 1 2 4 8 char* 4 8 float double 4 8 Compaq Alpha 是 一 个 针 对 高 端 应 用 的 64 位 机 器, 即 字 长 为 64 位 4 8
数 据 的 存 储 和 排 列 顺 序 80 年 代 开 始, 几 乎 所 有 机 器 都 用 字 节 编 址 ISA 设 计 时 要 考 虑 的 两 个 问 题 : 如 何 从 一 个 字 节 地 址 中 取 到 一 个 32 位 的 字?- 字 的 存 放 问 题 一 个 字 能 否 存 放 在 任 何 字 节 边 界?- 字 的 边 界 对 齐 问 题 例 如, 若 int i = 0x01234567, 存 放 在 内 存 100 号 单 元, 则 用 取 数 指 令 访 问 100 号 单 元 取 出 i 时, 必 须 清 楚 i 的 4 个 字 节 是 如 何 存 放 的 Word: 01 23 45 67 103 102 101 100 little endian word 100 msb lsb 100 101 102 103 big endian word 100 大 端 方 式 (Big Endian): MSB 所 在 的 地 址 是 数 的 地 址 e.g. IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA 小 端 方 式 ( Little Endian): LSB 所 在 的 地 址 是 数 的 地 址 e.g. Intel 80x86, DEC VAX 有 些 机 器 两 种 方 式 都 支 持, 可 以 通 过 特 定 的 控 制 位 来 设 定 采 用 哪 种 方 式
BIG Endian versus Little Endian Ex1: Memory layout of a number ABCDH located in 1000 In Big Endian: In Little Endian: CD AB AB CD 1001 1000 1001 1000 Ex2: Memory layout of a number 00ABCDEFH located in 1000 In Big Endian: In Little Endian: 00 AB CD EF 00 AB CD EF 1000 1001 1002 1003 1003 1002 1001 1000
BIG Endian versus Little Endian Ex3: Memory layout of a instruction located in 1000 假 定 小 端 机 器 中 指 令 :mov AX, 0x12345(BX) 其 中 操 作 码 mov 为 40H, 寄 存 器 AX 和 BX 分 别 为 0001B 和 0010B, 立 即 数 占 32 位, 则 存 放 顺 序 为 : MOV AX BX 00012345H 40 1 2 45 23 01 00 若 在 大 端 机 器 上, 则 存 放 顺 序 如 何? 40 1 2 00 01 23 45 00 01 23 45 12 40 1005 1004 1003 1002 1001 1000 45 23 01 00 12 40 地 址
Byte Swap Problem( 字 节 交 换 问 题 ) 78 56 34 3 2 1 12 0 Big Endian increasing byte address 12 34 56 3 2 1 78 0 Little Endian 上 述 存 放 在 0 号 单 元 的 数 据 ( 字 ) 是 什 么?12345678H? 78563412H? 存 放 方 式 不 同 的 机 器 间 程 序 移 植 或 数 据 通 信 时, 会 发 生 什 么 问 题? 每 个 系 统 内 部 是 一 致 的, 但 在 系 统 间 通 信 时 可 能 会 发 生 问 题! 因 为 顺 序 不 同, 需 要 进 行 顺 序 转 换 音 视 频 和 图 像 等 文 件 格 式 或 处 理 程 序 都 涉 及 到 字 节 顺 序 问 题 ex. Little endian: GIF, PC Paintbrush, Microsoft RTF,etc Big endian: Adobe Photoshop, JPEG, MacPaint, etc
Alignment( 对 齐 ) Alignment: 要 求 数 据 的 地 址 是 相 应 的 边 界 地 址 目 前 机 器 字 长 一 般 为 32 位 或 64 位, 而 存 储 器 地 址 按 字 节 编 址 指 令 系 统 支 持 对 字 节 半 字 字 及 双 字 的 运 算, 也 有 位 处 理 指 令 各 种 不 同 长 度 的 数 据 存 放 时, 有 两 种 处 理 方 式 : 按 边 界 对 齐 ( 假 定 字 的 宽 度 为 32 位, 按 字 节 编 址 ) - 字 地 址 :4 的 倍 数 ( 低 两 位 为 0) - 半 字 地 址 :2 的 倍 数 ( 低 位 为 0) - 字 节 地 址 : 任 意 不 按 边 界 对 齐 坏 处 : 可 能 会 增 加 访 存 次 数! ( 学 了 第 四 章 存 储 器 组 织 后 会 更 明 白!)
Alignment( 对 齐 ) 示 例 假 设 数 据 顺 序 : 字 - 半 字 - 双 字 - 字 节 - 半 字 - 如 :int i, short k, double x, char c, short j, 0 字 节 1 字 节 2 字 节 3 字 节 按 边 界 对 齐 x:2 个 周 期 j:1 个 周 期 边 界 不 对 齐 x:3 个 周 期 j:2 个 周 期 增 加 了 访 存 次 数! 00 04 08 12 16 则 :&i=0; &k=4; &x=8; &c=16; &j=18; 00 04 08 12 16 字 节 0 字 节 1 字 节 2 字 节 3 则 : &i=0; &k=4; &x=6; &c=14; &j=15;
数 据 的 检 / 纠 错 (Error Detect/Correct) 为 什 么 要 进 行 数 据 的 错 误 检 测 与 校 正? 存 取 和 传 送 时, 由 于 元 器 件 故 障 或 噪 音 干 扰 等 原 因 会 出 现 差 错 措 施 : (1) 从 计 算 机 硬 件 本 身 的 可 靠 性 入 手, 在 电 路 电 源 布 线 等 各 方 面 采 取 必 要 的 措 施, 提 高 计 算 机 的 抗 干 扰 能 力 ; (2) 采 取 相 应 的 数 据 检 错 和 校 正 措 施, 自 动 地 发 现 并 纠 正 错 误 如 何 进 行 错 误 检 测 与 校 正? 大 多 采 用 冗 余 校 验 思 想, 即 除 原 数 据 信 息 外, 还 增 加 若 干 位 编 码, 这 些 新 增 的 代 码 被 称 为 校 验 位 出 错 信 号 数 据 输 出 M 纠 正 器 数 据 输 入 f M P 存 储 器 或 传 输 线 路 M f P P 比 较
数 据 的 检 / 纠 错 比 较 的 结 果 为 以 下 三 种 情 况 之 一 : 1 没 有 检 测 到 错 误, 得 到 的 数 据 位 直 接 传 送 出 去 2 检 测 到 差 错, 并 可 以 纠 错 数 据 位 和 比 较 结 果 一 起 送 入 纠 错 器, 将 正 确 数 据 位 传 送 出 去 3 检 测 到 错 误, 但 无 法 确 认 哪 位 出 错, 因 而 不 能 进 行 纠 错 处 理, 此 时, 报 告 出 错 情 况 出 错 信 号 数 据 输 出 M 纠 正 器 BACK 数 据 输 入 f M P 存 储 器 或 传 输 线 路 M f P P 比 较
码 字 和 码 距 什 么 叫 码 距? 由 若 干 位 代 码 组 成 的 一 个 字 叫 码 字 两 个 码 字 中 具 有 不 同 代 码 的 位 的 个 数 叫 这 两 个 码 字 间 的 距 离 码 制 中 各 码 字 间 最 小 距 离 为 码 距, 它 就 是 这 个 码 制 的 距 离 问 题 : 8421 码 的 码 距 是 几? 2(0010) 和 3(0011) 间 距 离 为 1, 8421 码 制 的 码 距 为 1 数 据 校 验 中 码 字 指 数 据 位 和 校 验 位 按 某 种 规 律 排 列 得 到 的 代 码 码 距 与 检 错 纠 错 能 力 的 关 系 ( 当 d 4) 1 若 码 距 d 为 奇 数, 则 能 发 现 d-1 位 错, 或 能 纠 正 (d-1)/2 位 错 2 若 码 距 d 为 偶 数, 则 能 发 现 d/2 位 错, 并 能 纠 正 (d/2-1) 位 错 常 用 的 数 据 校 验 码 有 : 奇 偶 校 验 码 海 明 校 验 码 循 环 冗 余 校 验 码
奇 偶 校 验 码 基 本 思 想 : 增 加 一 位 奇 ( 偶 ) 校 验 位 并 一 起 存 储 或 传 送, 根 据 终 部 件 得 到 的 相 应 数 据 和 校 验 位, 再 求 出 新 校 验 位, 最 后 根 据 新 校 验 位 确 定 是 否 发 生 了 错 误 实 现 原 理 : 假 设 数 据 B=b n-1 b n-2...b 1 b 0 从 源 部 件 传 送 至 终 部 件 在 终 部 件 接 收 到 的 数 据 为 B =b n-1 b n-2...b 1 b 0 第 一 步 : 在 源 部 件 求 出 奇 ( 偶 ) 校 验 位 P 若 采 用 奇 校 验, 则 P=b n-1 b n-2... b 1 b 0 1 若 采 用 偶 校 验, 则 P=b n-1 b n-2... b 1 b 0 第 二 步 : 在 终 部 件 求 出 奇 ( 偶 ) 校 验 位 P 若 采 用 奇 校 验, 则 P = b n-1 b n-2... b 1 b 0 1 若 采 用 偶 校 验, 则 P =b n-1 b n-2... b 1 b 0 第 三 步 : 计 算 最 终 的 校 验 位 P*, 并 根 据 其 值 判 断 有 无 奇 偶 错 假 定 P 在 终 部 件 接 受 到 的 值 为 P, 则 P*= P P 1 若 P*=1, 则 表 示 终 部 件 接 受 的 数 据 有 奇 数 位 错 2 若 P*=0, 则 表 示 终 部 件 接 受 的 数 据 正 确 或 有 偶 数 个 错
奇 偶 校 验 法 的 特 点 问 题 : 奇 偶 校 验 码 的 码 距 是 几? 为 什 么? 码 距 d=2 在 奇 偶 校 验 码 中, 若 两 个 数 中 有 奇 数 位 不 同, 则 它 们 相 应 的 校 验 位 就 不 同 ; 若 有 偶 数 位 不 同, 则 虽 校 验 位 相 同, 但 至 少 有 两 位 数 据 位 不 同 因 而 任 意 两 个 码 字 之 间 至 少 有 两 位 不 同 特 点 根 据 码 距 和 纠 / 检 错 能 力 的 关 系, 它 只 能 发 现 奇 数 位 出 错, 不 能 发 现 偶 数 位 出 错, 而 且 也 不 能 确 定 发 生 错 误 的 位 置, 不 具 有 纠 错 能 力 开 销 小, 适 用 于 校 验 一 字 节 长 的 代 码, 故 常 被 用 于 存 储 器 读 写 检 查 或 按 字 节 传 输 过 程 中 的 数 据 校 验 因 为 一 字 节 长 的 代 码 发 生 错 误 时,1 位 出 错 的 概 率 较 大, 两 位 以 上 出 错 则 很 少, 所 以 可 用 奇 偶 校 验