计算机组成原理电子教案第2章

上传人:san****019 文档编号:21170483 上传时间:2021-04-25 格式:PPT 页数:59 大小:340KB
返回 下载 相关 举报
计算机组成原理电子教案第2章_第1页
第1页 / 共59页
计算机组成原理电子教案第2章_第2页
第2页 / 共59页
计算机组成原理电子教案第2章_第3页
第3页 / 共59页
点击查看更多>>
资源描述
第 二 章 计 算 机 的 数 据 表 示 计算机组成原理电子教案 陆 遥 2.1 字 符 数 据 的 表 示2.2 逻 辑 数 据 的 表 示2.3 校 验 码 2.3.1 码 距 与 校 验 位 的 概 念 2.3.2 奇 偶 校 验 码 2.3.3 海 明 校 验 码 2.3.4 循 环 冗 余 校 验 码2.4 数 值 数 据 的 表 示 2.4.1 数 的 二 进 制 真 值 表 示 2.4.2 用 BCD码 表 示 十 进 制 数 2.4.3 定 点 数 的 表 示 2.4.4 浮 点 数 的 表 示 2.1 字 符 数 据 的 表 示n 字 符 在 计 算 机 中 的 二 进 制 编 码 称 为 字 符 代 码 。 目前 , 计 算 机 中 普 遍 使 用 的 字 符 代 码 是 长 度 为 7位 的ASCII码 ( 美 国 信 息 交 换 标 准 代 码 ) 。n ASCII码 在 存 储 器 中 存 放 时 , 需 要 占 用 存 储 器 的一 个 字 节 ( 8位 ) , 其 中 的 最 高 位 ( b7) 置 为 0或用 作 奇 偶 校 验 位 。n 字 符 串 被 看 作 是 一 种 数 据 结 构 , 它 是 若 干 字 符 组成 的 一 个 序 列 , 属 于 线 性 结 构 。 字 符 串 在 计 算 机中 的 存 储 一 般 采 用 顺 序 存 储 结 构 , 串 中 每 个 字 符都 用 ASCII码 表 示 , 占 用 一 个 字 节 。 设 字 符 串 “ Very good!”存 储 在 从 主 存 地 址 i开 始 的连 续 字 节 中 , 则 其 存 储 结 果 为 2.2 逻 辑 数 据 的 表 示n 逻 辑 数 据 用 于 描 述 某 种 关 系 是 否 成 立 、 某 种 条 件是 否 满 足 、 某 种 状 态 是 否 出 现 、 某 种 控 制 是 否 有效 等 。n 逻 辑 数 据 所 描 述 的 结 果 总 是 只 有 两 种 可 能 : 成 立或 不 成 立 , 满 足 或 不 满 足 , 出 现 或 未 出 现 、 有 效或 无 效 等 。n 逻 辑 数 据 的 两 种 值 被 分 别 称 为 “ 真 ” 和 “ 假 ” 。“ 真 ” 代 表 关 系 成 立 、 条 件 满 足 、 状 态 出 现 、 控制 有 效 等 , “ 假 ” 则 反 之 。 计 算 机 中 只 需 用 一 位二 进 制 数 字 的 0和 1两 种 状 态 , 就 能 满 足 逻 辑 数 据表 示 的 需 要 : 1表 示 “ 真 ” , 0表 示 “ 假 ” 。 2.3 校 验 码n 数 据 校 验 码 是 一 类 能 够 发 现 甚 至 自 动 纠 正 某 些 数据 错 误 的 数 据 编 码 方 法 。n 通 常 , 将 正 确 的 数 据 编 码 称 为 合 法 编 码 , 而 将 错误 的 数 据 编 码 称 为 非 法 编 码 。n 校 验 码 的 设 计 原 则 : 当 一 个 合 法 编 码 中 的 数 据 位发 生 错 误 时 , 就 变 为 一 个 非 法 编 码 , 而 不 是 变 为另 一 个 合 法 编 码 。 这 样 , 只 要 检 测 到 非 法 编 码 ,就 能 发 现 数 据 错 误 。 2.3.1 码距与校验位的概念n 一 个 二 进 制 编 码 系 统 中 , 当 两 个 不 同 的 合 法 编 码进 行 对 应 位 的 比 较 时 , 会 有 一 些 位 上 的 取 值 不 同 ,这 些 取 值 不 同 的 位 的 位 数 称 为 这 两 个 编 码 的 码 距 ,也 称 海 明 距 离 。n 一 个 编 码 系 统 中 任 意 两 个 合 法 编 码 的 码 距 的 最 小值 , 称 为 这 个 编 码 系 统 的 最 小 码 距 。n 一 个 编 码 系 统 不 仅 要 编 出 全 部 合 法 编 码 , 还 应 能编 出 一 定 数 量 的 非 法 编 码 。 这 样 , 在 合 法 编 码 出错 时 , 才 有 可 能 变 成 非 法 编 码 而 被 检 出 。 n 编 码 系 统 中 包 含 的 非 法 编 码 称 为 冗 余 码 。为 了 形 成 冗 余 码 , 需 要 在 编 码 中 增 加 冗 余位 ( 校 验 位 ) 。 一 个 n位 的 编 码 系 统 , 如 果 不 设 校 验 位 , 则无 冗 余 码 , 全 部 2n个 编 码 均 为 合 法 编 码 , 最小 码 距 必 然 为 1, 编 码 系 统 无 检 错 能 力 。 借 助 于 校 验 位 , 可 以 使 编 码 系 统 的 最 小 码距 大 于 1, 而 与 某 个 合 法 编 码 的 码 距 小 于 最小 码 距 的 编 码 一 定 是 非 法 编 码 。 2.3.2 奇偶校验码n 奇 偶 校 验 码 是 在 基 本 编 码 之 上 增 加 一 个 校 验 位 奇 偶 校 验 位 而 形 成 的 。 奇 偶 校 验 分 为 奇 校 验 和偶 校 验 两 种 实 现 方 案 。 奇 校 验 是 通 过 校 验 位 的 调 节 , 使 整 个 编 码 中 包 含的 二 进 制 1的 位 数 为 奇 数 。 偶 校 验 是 通 过 校 验 位 的 调 节 , 使 整 个 编 码 中 包 含的 二 进 制 1的 位 数 为 偶 数 。 5位 偶 校 验 码 表 ( 最 高 位 为 校 验 位 ) 原 始 数 据 编 码( 4位 ) 偶 校 验 编 码( 5位 ) 原 始 数 据 编 码( 4位 ) 偶 校 验 编 码( 5位 )0000 00000 1000 110000001 10001 1001 010010010 10010 1010 010100011 00011 1011 110110100 10100 1100 011000101 00101 1101 111010110 00110 1110 111100111 10111 1111 01111增 加 一 个 校 验 位 后 , 最 小 码 距 从 1变 为 2。 表 中 未 列 出 的 另 16种 5位 编 码 就 是 本 编 码 系统 的 冗 余 码 , 也 就 是 非 法 编 码 。 任 一 非 法编 码 均 与 表 中 某 个 合 法 编 码 的 码 距 为 1, 且合 法 编 码 出 错 的 位 数 为 奇 数 ( 1、 3或 5) 时 ,均 会 变 成 非 法 编 码 。 奇 偶 校 验 码 能 够 发 现 奇 数 个 编 码 位 的 错 误 ,但 无 法 确 定 出 错 位 的 位 置 , 故 不 能 实 现 自动 纠 错 。 n 设 奇 偶 校 验 码 为 PDn-1Dn-2D1D0, 其 中 , P为 校 验位 , Dn-1Dn-2D1D0为 n个 数 据 编 码 位 , 按 照 奇 偶校 验 码 的 编 码 方 法 , 校 验 位 与 数 据 编 码 位 的 逻 辑关 系 为 : 奇 校 验 : 偶 校 验 : 奇 偶 校 验 的 校 验 式 为 : 对 偶 校 验 , S=1时 编 码 有 错 , S=0时 编 码 无 错 , 对奇 校 验 则 正 好 相 反 。 0121 DDDDP nn 0121 DDDDP nn 0121 DDDDPS nn 2.3.3 海 明 校 验 码n 海 明 校 验 码 具 有 发 现 2位 错 误 并 纠 正 1位 错 误 的 能力 , 是 一 种 广 泛 使 用 的 校 验 码 。n 海 明 校 验 码 的 设 计 原 理 : 将 几 个 校 验 位 编 入 到 数据 码 的 特 定 位 置 , 全 部 数 据 位 被 分 成 几 个 奇 偶 校验 组 , 每 个 数 据 位 被 按 一 定 的 规 则 分 配 到 其 中 几个 组 中 , 各 校 验 位 分 别 作 为 各 组 的 奇 偶 校 验 ( 一般 为 偶 校 验 ) 位 。 当 某 个 数 据 位 出 错 时 , 将 会 导致 含 有 该 数 据 位 的 几 个 校 验 组 的 校 验 结 果 出 错 。根 据 出 错 校 验 组 的 不 同 组 合 , 就 能 确 定 是 哪 个 数据 位 发 生 错 误 , 进 而 自 动 纠 正 这 个 错 误 。 海 明 码 数 据 位 数 k与 校 验 位 数 r的 对 应 关 系 表 k值 最 小 的 r值1 45 1112 2627 5758 120 45678设 校 验 位 的 位 数 为 r, 数 据 位 的 位 数 为 k, 若 要 能 够发 现 2位 错 误 并 纠 正 1位 错 误 , 则 需 满 足rk r 12 n 设 m = k + r, 则 海 明 码 是 一 个 m位 编 码 , 设 其 一般 表 示 形 式 为 HmHm-1H2H1, 则 此 海 明 码 的 编 码规 则 是 : 各 校 验 位 Pi( i =1, 2, , r) 被 安 排 在 编 码 的第 2i-1位 的 位 置 , 编 码 中 的 其 余 位 为 数 据 位 。 如 校验 位 P3在 海 明 码 中 位 于 第 4( 23-1) 位 , 即 编 码 中的 H4。 海 明 码 的 每 个 位 被 分 配 到 几 个 奇 偶 校 验 组 中 ,所 以 , 每 个 位 均 由 几 个 校 验 位 来 校 验 。 各 被 校 验位 与 相 关 的 校 验 位 之 间 的 关 系 是 : 被 校 验 位 的 位号 是 相 关 各 校 验 位 的 位 号 之 和 ( 这 里 的 位 号 是 指其 在 海 明 码 中 的 位 号 ) 。 n 例 如 , 当 k=4时 , 有 r =4, 则 海 明 码 总 位 数 为 8,可 表 示 为 H8H7H6H5H4H3H2H1。 按 编 码 规 则 , 4个校 验 位 P1、 P2、 P3、 P4被 分 别 安 排 在 H1、 H2、 H4和 H8。 如 以 Di和 Pi( i =1, 2, 3, 4) 分 别 表 示 数据 位 和 校 验 位 , 则 海 明 码 的 编 码 结 果 为P4D4D3D2P3D1P2P1 其 中 的 各 个 编 码 位 与 相 关 的 校 验 位 之 间 的 关 系 如下 表 所 示 : 海 明 码 的 编 码 位 与 相 关 校 验 位 之 间 的 关 系海 明 码 位 号 数 据 位 /校 验 位 相 关 的 校 验 位 位 号H1 P1 1 ( 1=1)H2 P2 2 ( 2=2)H3 D1 1, 2 ( 3=1+2)H4 P3 4 ( 4=4)H5 D2 1, 4 ( 5=1+4)H6 D3 2, 4 ( 6=2+4)H 7 D4 1, 2, 4 ( 7=1+2+4)H8 P4 8 ( 8=8)可 见 , P1要 对 数 据 位 D1、 D2、 D4进 行 校 验 , P2要 对数 据 位 D1、 D3、 D4进 行 校 验 , P3要 对 数 据 位 D2、 D3、D4进 行 校 验 。 如 选 择 偶 校 验 , 有 对 应 的 三 个 校 验 式 为 4323 4312 4211 DDDP DDDP DDDP 43233 43122 42111 DDDPS DDDPS DDDPS 编 码 位 出 错 与 校 验 式 结 果 之 间 的 关 系 当 不 同 的 编 码 位 ( 包 括 数 据 位 和 校 验 位 ) 发 生 错误 时 , 3个 校 验 式 的 值 组 成 的 二 进 制 序 列 S3S2S1就会 不 同 。出 错 的 编 码 位 校 验 式 结 果 S3S2S1 海 明 码 位 号P1 001 ( 1) H1P2 010 ( 2) H2D1 011 ( 3) H3P3 100 ( 4) H4D2 101 ( 5) H5D 3 110 ( 6) H6D4 111 ( 7) H7无 出 错 位 000 ( 0) 无 n 按 S3S2S1确 认 出 错 的 编 码 位 后 , 只 需 将 该 编 码 位取 反 , 即 可 纠 正 之 。 纠 错 时 , 需 要 针 对 S3S2S1的每 种 取 值 ( 除 000外 ) 设 计 相 应 的 纠 错 电 路 , 来 纠正 对 应 的 出 错 编 码 位 , 硬 件 代 价 较 大 。n 海 明 码 还 能 检 出 2位 错 误 。 因 为 任 意 两 个 编 码 位 出错 , 都 将 使 S3S2S1000。 但 仅 凭 S3S2S1000, 无 法区 分 是 2位 错 误 还 是 1位 错 误 。 为 此 , 需 要 增 加 一个 总 校 验 位 P4, 使 得 并 增 设 一 个 奇 偶 校 验 式 S 4 =1, 发 生 1位 错 误 ; S4 =0, 发 生 2位 错 误 。32143214 PPPDDDDP 321432144 PPPDDDDPS 2.3.4 循环冗余校验码n 循 环 冗 余 校 验 ( CRC) 码 因 其 纠 错 能 力 强 , 且 在信 息 量 较 大 的 情 况 下 , 编 码 与 解 码 所 需 的 硬 件 代价 小 等 优 点 , 被 广 泛 用 于 串 行 传 送 过 程 中 的 检 错与 纠 错 。n CRC码 也 称 为 ( n, k) 码 , 它 是 在 k位 信 息 位 之后 拼 接 r位 校 验 位 而 形 成 的 n位 编 码 ( n=k+r) 。 1模2四则运算n CRC码 的 编 码 及 校 验 过 程 均 需 要 用 到 模 2四 则 运算 。 模 2运 算 是 按 位 运 算 , 位 与 位 之 间 不 产 生 进 位或 借 位 。 模 2加 /减 运 算 : 模 2加 与 模 2减 是 两 种 等 效 的 运 算 , 均 等 同 于 逻 辑 异 或 运 算 , 即 模 2乘 运 算 : 在 对 部 分 积 求 和 时 按 模 2加 进 行 。例 如 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0baba 模 2除 运 算 : 上 商 时 , 如 果 上 一 次 部 分 余 数 的 最高 位 为 1, 则 本 次 上 商 为 1, 否 则 上 商 为 0; 求 部 分余 数 时 , 按 模 2减 进 行 ; 将 每 次 求 得 的 部 分 余 数 的最 高 位 ( 总 是 0) 去 掉 , 使 部 分 余 数 每 次 减 少 一 位 ,当 部 分 余 数 的 位 数 少 于 除 数 位 数 时 , 即 为 最 终 的余 数 。 例 如 1 0 1 商 1 0 1 1 0 0 1 0 被 除 数 也 是 最 初 的 部 分 余 数 1 0 1 部 分 余 数 最 高 位 为 1, 上 商 为 1 0 0 1 1 0 去 掉 部 分 余 数 最 高 位 的 0, 部 分 余 数 减 少 一 位 0 0 0 部 分 余 数 最 高 位 为 0, 上 商 为 0 0 1 1 0 去 掉 部 分 余 数 最 高 位 的 0, 部 分 余 数 减 少 一 位 1 0 1 部 分 余 数 最 高 位 为 1, 上 商 为 1 0 1 1 去 掉 部 分 余 数 最 高 位 的 0, 得 最 终 余 数 11 2CRC码的编码方法n 一 个 k位 二 进 制 信 息 码 可 以 用 一个 多 项 式 表 示 : M(x)称 为 信 息 码 多 项 式 。n 为 了 在 信 息 位 后 拼 接 r位 校 验 位 , 需 将 k位 信 息 位向 左 移 动 r位 , 得 多 项 式 M (x) xr。n r位 校 验 位 可 以 表 示 为 多 项 式 R (x), 它 是 以 下 多 项式 运 算 产 生 的 余 数 ( 按 模 2运 算 ) 0121 DDDD kk 012211 DxDxDxDxM kkkk xG xRxQxG xxM r 上 式 中 , G (x)被 称 为 生 成 多 项 式 , 是 一 个 r阶 多 项式 ; Q (x)为 商 多 项 式 ; R (x)是 余 数 多 项 式 。n 将 R (x)拼 接 在 M (x)之 后 , 即 得 到 完 整 的 CRC码 ,其 多 项 式 表 示 形 式 为 M (x) xr R (x)( 模 2加 ) 。n CRC码 M (x) xr R (x)可 被 其 生 成 多 项 式 G (x)整除 ( 模 2除 ) , 即 余 数 为 r位 全 0。 因 为 M (x) xr R (x) = Q (x) G (x) R (x) R (x) = Q (x) G (x) R (x) R (x) = Q (x) G (x) ( 模 2运 算 ) 【例2.1】 按 ( 7, 4) CRC码 的 编 码 规 则 , 求 4位 信 息 码1100的 CRC码 , 生 成 多 项 式 选 择 G (x) = x3 x 1。 解 : 由 ( 7, 4) 码 可 知 r = 7 4 = 3, 即 校 验 位 有 3位 。 根据 4位 信 息 码 1100得 M (x) = x3 x2; M (x)左 移 r位 后 得 M (x) xr = (x3 x2) x3 = x6 x5 = 1100000 G (x) = x3 x 1 = 1011。 下 面 按 模 2除 求 3位 校 验 位 所 以 , R (x) = 010。 由 此 可 得 CRC码 为 M (x) x r R (x) = 1100000 010 = 1100010 ( 模 2加 ) 1011010111010111100000 xG xxM r 3 CRC码的检错与纠错n CRC码 的 检 错 原 理 : 数 据 传 送 的 接 收 方 在 接 收 到CRC码 后 , 使 用 与 发 送 方 约 定 的 生 成 多 项 式 去 除该 CRC码 , 如 果 余 数 为 r位 全 0, 则 收 到 的 CRC码无 错 误 , 否 则 有 错 误 。n CRC码 的 纠 错 原 理 : CRC码 不 同 位 上 的 错 误 将 导致 产 生 不 同 的 余 数 R (x), 可 依 据 余 数 R (x)确 定 并纠 正 出 错 的 编 码 位 。 例 2.1的 ( 7, 4) CRC码 出 错 位 与 余 数 R (x)之 间 的 对 应 关 系( 生 成 多 项 式 G (x) = 1011) A7 A6 A5 A4 A3 A2 A1 余 数 R (x) 出 错 位正 确 的 编 码 1 1 0 0 0 1 0 0 0 0 无发 生 1位 错误 的 编 码 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 10 1 01 0 00 1 11 1 01 1 11 0 1 1234567可 以 证 明 , 只 要 CRC码 的 码 制 ( 即 ( n, k) 码 的 n、 k取 值 )和 生 成 多 项 式 G (x)不 变 , 信 息 码 M (x)的 变 化 不 改 变 出 错 位与 余 数 R (x)的 对 应 关 系 。 即 上 表 所 列 , 为 所 有 以 G (x)= 1011 为 生 成 多 项 式 的 ( 7, 4) CRC码 的 出 错 模 式 。 n CRC码 还 有 一 个 重 要 特 点 : 在 一 个 不 为 0的 余 数的 最 低 位 补 1个 0后 再 除 以 G (x)( 模 2除 ) , 所 得的 余 数 就 是 出 错 模 式 表 中 的 下 一 个 余 数 ; 如 此 继续 下 去 , 各 次 产 生 的 余 数 将 按 出 错 模 式 表 中 的 顺序 循 环 变 化 。n 对 一 个 ( n, k) 码 , 在 某 位 出 错 时 , 从 对 应 的 余数 开 始 , 按 上 述 方 法 产 生 余 数 的 循 环 变 化 , 同 时每 次 使 整 个 CRC码 循 环 左 移 1位 , 当 余 数 变 到 对应 于 An出 错 的 余 数 时 , 出 错 位 也 被 移 到 An的 位 置 ,此 时 将 A n取 反 实 现 纠 错 , 然 后 继 续 做 余 数 的 循 环变 化 和 CRC码 的 循 环 左 移 , 直 到 做 满 一 个 循 环( n次 ) , 就 得 到 了 一 个 纠 正 后 的 CRC码 。 n 利 用 CRC码 来 纠 错 , 不 必 针 对 每 个 不 为 0的 余 数来 设 计 对 应 编 码 位 的 纠 错 电 路 , 能 有 效 降 低 校 验电 路 的 硬 件 代 价 。 4生成多项式简介n 生 成 多 项 式 应 能 满 足 下 列 要 求 : CRC码 的 任 何 一 位 出 错 , 均 使 余 数 不 为 0; CRC码 的 不 同 位 出 错 时 , 余 数 也 应 不 同 ; 对 不 为 0的 余 数 最 低 位 补 0后 继 续 作 模 2除 , 应 能 使 余 数 循 环 。 若 要 求 余 数 为 r位 , 则 生 成 多 项 式 应 为 r阶 。 n 生 成 多 项 式 的 求 取 方 法 : 对 一 个 ( n, k) 码 来 说 ,可 将 ( xn -1) 按 模 2 运 算 规 则 分 解 为 若 干 质 因 子 ,根 据 编 码 所 要 求 的 码 距 选 取 其 中 的 因 式 或 若 干 因式 的 乘 积 作 为 生 成 多 项 式 。 【例2.2】 设 n = 7, 则 按 模 2 运 算 规 则 , 有 选 择 G (x) = x 1 = 11, 可 构 成 ( 7, 6) 码 , 只 能 判 1位 错 。 选 择 G (x) = x 3 x 1 = 1011或 G (x) = x3 x2 1 = 1101,可 构 成 ( 7, 4) 码 , 能 判 2位 错 或 纠 1位 错 。 选 择 G (x) = (x 1)(x3 x 1) = 11101, 可 构 成 ( 7, 3) 码 ,能 判 2位 错 并 纠 1位 错 。 )1)(1)(1(1 2337 xxxxxx 部 分 ( n, k) 码 的 生 成 多 项 式 G (x) n k 码 距 d G (x) 多 项 式 G (x)二 进 制 码7 4 3 G1(x) = (x3+x+1) 或 (x3+x2+1) 1011或 11013 4 G2(x) = G1(x) (x+1) = (x3+x+1) (x+1) 或 (x3+x2+1) (x+1) 11101或 1011115 11 3 G1(x) = (x4+x+1) 100117 5 G 2(x) = (x4+x+1) (x4+ x3+x2+x+1) 11101000131 26 3 G1(x) = (x5+x2+1) 10010121 5 G2(x) = (x5+x2+1) (x5+x4+ x3+x2+x+1) 1110110100163 57 3 G1(x) = (x6+x+1) 100001151 5 G2(x) = (x6+x+1) (x6+ x4+ x+1) 10100001101011041 1025 G (x) = (x16+ x15+x2 +1) 11000000000000101 2.4 数 值 数 据 的 表 示 n 数 值 数 据 是 计 算 机 中 用 于 各 种 算 术 运 算 的数 据 。n 计 算 机 中 表 示 数 值 数 据 要 解 决 有 效 数 字 、小 数 点 及 符 号 的 表 示 , 还 要 便 于 数 据 的 运算 。 2.4.1 数的二进制真值表示n 所 谓 数 的 “ 真 值 ” 表 示 , 是 相 对 于 数 在 计 算 机 中的 编 码 表 示 而 言 的 , 也 就 是 人 们 平 时 所 习 惯 的 数的 书 面 表 示 形 式 。 如 +10000100 和 -1111011.01。n 在 计 算 机 中 , 无 论 是 “ +”号 、 “ -”号 还 是 小 数 点“ .”, 都 属 于 字 符 , 需 要 用 ASCII码 来 表 示 。 如 果计 算 机 中 也 采 用 真 值 表 示 数 据 的 话 , 就 会 大 大 增加 信 息 的 存 储 量 , 同 时 也 会 给 运 算 带 来 很 大 的 麻烦 。 n 计 算 机 中 的 数 值 数 据 采 用 特 殊 的 二 进 制 编 码 形 式表 示 , 称 为 机 器 数 。 2.4.2 用BCD码表示十进制数n BCD( binary coded decimal) 码 的 完 整 意 义 是“ 用 二 进 制 编 码 的 十 进 制 码 ” , 它 采 用 4位 二 进 制编 码 表 示 1位 十 进 制 数 。n BCD码 分 有 权 码 与 无 权 码 两 类 。 有 权 码 如 8421码 、2421码 等 ; 无 权 码 如 余 3码 、 格 雷 码 等 。 n 采 用 8421码 可 以 进 行 十 进 制 算 术 运 算 , 但 运 算 结果 可 能 需 要 修 正 。 典 型 BCD码 十 进 制 数 有 权 码 无 权 码8421码 2421码 余 3码 格 雷 码0 0000 0000 0011 00001 0001 0001 0100 00012 0010 0010 0101 00113 0011 0011 0110 00104 0100 0100 0111 01105 0101 1011 1000 11106 0110 1100 1001 10107 0111 1101 1010 10008 1000 1110 1011 1100 9 1001 1111 1100 0100 2.4.3 定点数的表示n 计 算 机 中 实 际 用 于 数 值 计 算 的 数 据 表 示 方 法 主 要有 定 点 数 表 示 法 和 浮 点 数 表 示 法 两 种 ; 定 点 数 表示 法 也 是 浮 点 数 表 示 法 的 基 础 。n 所 谓 定 点 数 表 示 , 是 指 小 数 点 被 固 定 在 数 据 中 某个 特 定 位 置 上 的 数 据 表 示 方 法 。 定 点 整 数 : 定 点 小 数 : 其 中 , x s是 数 的 符 号 。 0121 xxxxx nns 0121 xxxxx nns n 定 点 数 中 , 小 数 点 的 位 置 可 以 看 作 是 默 认 的 , 因此 , 小 数 点 不 用 表 示 出 来 。n 符 号 的 表 示 是 定 点 数 表 示 必 须 要 解 决 的 问 题 。 带符 号 的 定 点 数 在 计 算 机 中 有 原 码 、 补 码 、 反 码 和移 码 等 四 种 编 码 表 示 方 法 。 1. 原码表示法n 原 码 以 0表 示 正 号 , 以 1表 示 负 号 , 直 接 置 于 数 的最 左 端 ( 即 最 高 位 位 置 ) ; 而 数 的 数 字 部 分 与 其绝 对 值 一 致 。 【例2.3】 若 x = +0.1011, 则 x 原 = 0.1011; 若 x = -0.1011, 则 x原 = 1.1011; 若 x = +1011, 则 x原 = 01011; 若 x = -1011, 则 x原 = 11011。 n 设 符 号 位 用 xs表 示 , 各 数 据 位 用 xi( i = 0, 1,2, , n1) 表 示 , 则 原 码 的 一 般 表 示 形 式 为x原 = xs xn1 xn2 x1 x0n 用 原 码 表 示 时 , +0原 与 -0原 是 不 同 的 :+0原 = 00000-0原 = 10000n 原 码 比 较 适 合 于 乘 除 运 算 。 n 原 码 不 适 合 于 加 减 运 算 。 2. 补码表示法n 计 算 机 中 , 因 为 用 来 存 储 数 据 的 存 储 单 元 或 寄 存器 有 一 定 的 位 数 限 制 , 进 行 数 据 运 算 的 运 算 器 也有 一 定 的 位 数 限 制 , 所 以 , 数 据 在 计 算 机 中 表 示的 位 数 也 是 受 限 制 的 。 当 数 据 超 过 规 定 位 数 时 ,其 处 于 高 位 的 超 出 部 分 将 被 丢 弃 。n 以 定 点 整 数 为 例 , 设 一 个 寄 存 器 的 位 数 为 n, 则超 出 该 寄 存 器 存 储 能 力 的 最 小 正 整 数 是 2n, 它 在该 寄 存 器 中 的 存 储 结 果 与 0的 存 储 结 果 是 一 样 的 。 n 一 般 地 , 设 x为 正 整 数 , 且 0 x 2n, 则 x与 2n x在 n位 寄 存 器 中 的 存 储 结 果 是 一 样 的 , 均 为 x。 这种 现 象 在 数 学 中 称 为 “ 同 余 ” , 即 x除 以 2n与 2n x除 以 2n的 余 数 相 同 , 用 数 学 公 式 表 示 为x = 2n x (mod 2n)n 在 同 余 的 概 念 下 , 设 x 0且 |x| 2n, 则 同 样 有x = 2n x (mod 2n) 式 中 , x 0而 2n x 0。 它 说 明 : 在 mod 2n的 前提 下 , 一 个 负 数 x可 以 用 一 个 正 数 2 n x来 表 示 ;也 就 是 说 , 一 个 负 数 x与 一 个 正 数 2n x在 n位 寄存 器 中 的 存 储 结 果 是 一 样 的 。 n 在 mod 2n的 前 提 下 , 设 |x| 2n, 我 们 把 x的 同 余 数2n x称 为 x的 补 码 , 即x补 = 2n x (mod 2n) 在 一 个 n位 寄 存 器 中 存 放 补 码 时 , 要 把 最 高 位 留作 符 号 位 , 数 字 部 分 为 n1位 。 故 x的 实 际 取 值 范围 是 -2n1 x 2n1 -1n 对 定 点 小 数 , 由 于 符 号 位 占 据 了 n位 寄 存 器 的 最高 位 , 相 当 于 占 据 了 20位 , 故 模 数 应 该 是 21。 由此 可 得 定 点 小 数 x的 补 码 为x 补 = 21 x (mod 21) x的 实 际 取 值 范 围 是-1 x 1-2-(n 1) 【例2.4】 设 寄 存 器 位 数 为 8位 , 可 以 存 放 一 个 8位补 码 ( 1位 符 号 , 7位 数 值 ) 。 设 x = +1001011,求 x补 。 解 : x补 = 28 + x (mod 28) = 28 + (+1001011) (mod 28) = 01001011 (mod 28) 其 中 , 最 高 位 上 的 0被 看 作 符 号 位 。 由 本 例 可 知 :一 个 正 数 的 补 码 与 其 原 码 是 一 致 的 。 【例2.5】 设 寄 存 器 位 数 为 8位 , x = -1001011, 求x补 。 解 : x补 = 28 + x (mod 28) = 28 + (-1001011) (mod 28) = 10110101 (mod 28) 其 中 , 最 高 位 上 的 1被 看 作 符 号 位 。 由 本 例 可 知 :一 个 负 数 的 补 码 , 其 符 号 位 为 1。 显 然 , 负 数 的 补码 与 其 原 码 是 不 同 的 。 【例2.6】 设 寄 存 器 位 数 为 8位 , x = +0.1001011,求 x补 。 解 : x补 = 21 + x (mod 21) = 21 + (+0.1001011) (mod 21) = 0.1001011 (mod 21) 最 高 位 上 的 0被 看 作 符 号 位 。 【例2.7】 设 寄 存 器 位 数 为 8位 , x = -0.1001011,求 x补 。 解 : x补 = 21 + x (mod 21) = 2 1 + (-0.1001011) (mod 21) = 1.0110101 (mod 21) 最 高 位 上 的 1被 看 作 符 号 位 。 n 与 原 码 不 同 , 补 码 的 符 号 位 ( 正 为 0, 负 为1) 不 是 人 为 规 定 的 , 而 是 在 求 补 码 的 运 算中 求 出 的 , 实 际 上 就 是 运 算 结 果 的 最 高 有效 数 字 位 。 因 此 , 在 用 补 码 进 行 加 减 运 算时 , 符 号 位 可 以 象 数 字 位 一 样 参 加 运 算 ,给 计 算 机 的 加 减 运 算 带 来 很 大 方 便 。 3. 反码表示法n 一 个 数 的 反 码 可 通 过 其 原 码 求 得 , 方 法 是 : 正 数的 反 码 与 其 原 码 一 致 ; 负 数 的 反 码 与 其 原 码 符 号位 相 同 , 数 字 位 按 位 取 反 。n 反 码 一 般 不 用 于 计 算 , 但 可 用 来 作 为 原 码 转 换 为补 码 时 的 中 间 代 码 。 原 码 转 换 为 补 码 的 方 法 是 : 正 数 的 原 码 、 补 码 及 反 码 均 相 同 , 无 需 转 换 ; 对 负 数 , 先 从 原 码 求 其 反 码 , 再 将 反 码 加 1, 即 得 其 补 码 。 n 补 码 到 原 码 的 转 换 也 使 用 同 样 的 方 法 。 【例2.8】 设 寄 存 器 位 数 为 8位 , x = -1001011, 则 x原 = 11001011, x反 = 10110100, x补 = x反 +1 = 10110100+1 = 10110101 【例2.9】 在 例 2.8的 基 础 上 , 将 x补 转 换 为 x原 的 过 程 如 下 : x 补 = 10110101符 号 位 不 变 , 数 字 位 每 位 取 反 ,得 11001010加 1, 得 11001011= x原 。 4. 移码表示法n 移 码 只 用 于 表 示 带 符 号 定 点 整 数 。 设 x是 一 个 n位二 进 制 整 数 , 则 其 移 码 定 义 为x移 = 2n + x , 2n x -2n x移 是 一 个 n +1位 的 编 码 , 最 高 位 被 看 作 符 号 。 【例2.10】 设 x = +1001011, 为 7位 数 , 则x移 = 27 + x = 27 + (+1001011) = 11001011 【例2.11】 设 x = -1001011, 为 7位 数 , 则x移 = 27 + x = 27 + (-1001011) = 00110101n 移 码 正 数 的 符 号 为 1, 而 负 数 的 符 号 为 0。 移 码 的符 号 能 够 直 接 参 与 加 减 运 算 。 移 码 之 间 的 大 小 关系 可 以 直 接 反 映 数 据 真 值 之 间 的 大 小 关 系 。 2.4.4 浮点数的表示n 浮 点 数 是 指 小 数 点 位 置 未 经 人 为 约 定 的 一 般 的 数 ,其 小 数 点 可 以 出 现 在 数 中 任 意 位 置 。n 一 个 浮 点 数 N可 以 表 示 成N = Re mn 浮 点 数 的 三 个 构 成 要 素 : 指 数 e; 基 数 R; 有 效 数字 m。n 浮 点 数 表 示 的 基 本 思 想 : 将 浮 点 数 的 三 个 要 素 分别 表 示 出 来 。n 在 计 算 机 中 , 指 数 是 一 个 整 数 , 可 用 定 点 整 数 表示 ; 基 数 默 认 为 2, 不 用 表 示 出 来 ; 有 效 数 字 部 分被 规 定 为 一 个 纯 小 数 , 可 用 定 点 小 数 表 示 。 n 指 数 的 机 器 数 编 码 称 为 “ 阶 码 ” , 有 效 数 字 的 机器 数 编 码 称 为 “ 尾 数 ” , 尾 数 的 符 号 就 是 浮 点 数的 符 号 。 浮 点 数 在 计 算 机 中 的 一 般 编 码 表 示 格 式为 : 尾 数 M一 般 用 补 码 或 原 码 表 示 ; 阶 码 E一 般 用 移码 或 补 码 表 示 ; 数 符 S是 浮 点 数 的 符 号 , 也 就 是尾 数 的 符 号 ( 故 M不 含 符 号 位 ) 。n 浮 点 数 的 表 示 范 围 取 决 于 阶 码 的 位 数 , 而 浮 点 数的 表 示 精 度 则 取 决 于 尾 数 的 位 数 。 n 在 浮 点 数 表 示 中 , 除 了 要 求 尾 数 为 纯 小 数 外 , 还进 一 步 规 定 : 当 尾 数 的 绝 对 值 不 为 0时 , 尾 数 绝 对值 ( 或 真 值 ) 的 最 高 有 效 数 字 必 须 为 1; 这 称 为 浮点 数 的 规 格 化 表 示 。 如 : +110.0101的 规 格 化 表 示 形 式 是23 0.1100101 而 不 能 是 24 0.01100101n 浮 点 数 的 规 格 化 表 示 既 消 除 了 浮 点 数 表 示 的 不 确定 性 , 又 可 以 尽 量 减 少 其 精 度 损 失 。 n 浮 点 数 表 示 中 的 一 些 特 殊 情 况 : 当 尾 数 为 0时 , 浮 点 数 的 值 为 零 , 称 为 机 器 零 。 当 阶 码 小 于 可 表 示 的 最 小 数 ( 即 绝 对 值 最 大 的负 数 ) 时 , 浮 点 数 的 值 也 被 看 作 机 器 零 。 当 阶 码 大 于 可 表 示 的 最 大 数 时 , 称 为 浮 点 数“ 溢 出 ” , 通 常 要 作 为 异 常 情 况 处 理 ( 报 警 或 中止 程 序 执 行 等 ) 。 n IEEE 754标 准 的 32位 ( 单 精 度 ) 和 64位 ( 双 精 度 )浮 点 数 的 标 准 格 式 : 其 中 , S为 数 符 , 0表 示 正 数 , 1表 示 负 数 ; E为 阶码 , 用 移 码 表 示 ; M是 尾 数 , 用 原 码 表 示 。n IEEE 754格 式 浮 点 数 的 真 值 x计 算 公 式 : 单 精 度 : x = (-1)S (1. M) 2E127 , e = E127 双 精 度 : x = (-1) S (1. M) 2E1023 , e = E1023 其 中 , S、 E、 M即 为 标 准 格 式 中 的 数 符 、 阶 码 、尾 数 , e是 指 数 的 真 值 。 n IEEE 754标 准 浮 点 数 的 规 格 化 尾 数 实 际 为 1. M,其 中 的 整 数 位 1是 默 认 的 , 没 有 表 示 出 来 , 只 在 计算 时 由 运 算 电 路 自 动 提 供 。n 实 际 上 , 可 将 IEEE 754标 准 格 式 浮 点 数 的 规 格 化尾 数 , 看 作 是 一 般 格 式 浮 点 数 的 规 格 化 尾 数 ( 0除外 ) 左 移 一 位 后 所 得 , 当 然 , 阶 码 要 为 此 减 1。 因此 , IEEE 754标 准 格 式 浮 点 数 的 阶 码 也 不 是 标 准的 移 码 表 示 形 式 , 它 是 标 准 移 码 减 1后 的 结 果 。 n IEEE 754标 准 规 定 : 用 E和 M均 为 全 0来 表 示 零 值 ; 根 据 S的 不 同 ,有 正 零 与 负 零 之 分 。 用 E为 全 1、 M为 全 0来 表 示 无 穷 大 ; 根 据 S的 不同 , 有 正 无 穷 大 与 负 无 穷 大 之 分 。 当 E为 全 1, 而 M不 为 0时 , 不 表 示 任 何 数 , 而用 来 报 告 一 些 异 常 运 算 ( 如 : 0 0, 0 , 求 负数 的 平 方 根 等 ) 的 发 生 。 当 E为 全 0, 而 M不 为 0时 , 表 示 反 规 格 化 数 。 当 E不 为 全 0或 全 1时 , 表 示 规 格 化 非 零 浮 点 数 。 【例2.12】 设 某 种 24位 浮 点 数 的 机 器 编 码 格 式 为 : 其 中 , S为 数 符 ; 阶 码 E和 尾 数 M均 用 补 码 表 示 。 试 将 十 进制 数 -576.625表 示 成 这 种 格 式 的 规 格 化 数 据 编 码 。 解: (-576.625)10 = (-1001000000.101)2 , -1001000000.101 = 210 (-0.1001000000101) , 所 以 , 指 数 e = (10)10 , 有 效 数 字 m = -0.10010000001010000, 故E = e 补 = 001010, M = m补 = 1.01101111110110000 由 于 M的 符 号 作 为 数 符 S, M不 再 包 含 符 号 位 , 因 此 , -576.625的 浮 点 数 机 器 编 码 为1 001010 01101111110110000 【例2.13】 对 例 2.12中 的 浮 点 数 编 码 格 式 , 求 其 规 格 化 数据 的 表 示 范 围 。 解: 求 数 据 表 示 范 围 需 要 确 定 最 小 负 数 、 最 大 负 数 、 最 小正 数 和 最 大 正 数 的 值 , 下 面 分 别 进 行 : 最 小 负 数 : 1 011111 00000000000000000 真 值 : -1 231 最 大 负 数 : 1 100000 10000000000000000 真 值 : -2-33 最 小 正 数 : 0 100000 10000000000000000 真 值 : +2 -33 最 大 正 数 : 0 011111 11111111111111111 真 值 : +(1-2-17) 231 所 以 , 该 24位 浮 点 数 的 规 格 化 数 据 表 示 范 围 是 :-1 231, -2-33 +2-33, +(1-2-17) 231 【例2.14】 若 一 个 IEEE 754 标 准 的 32位 浮 点 数 编码 表 示 为0 10100011 01101100000000000000000 求 其 十 进 制 值 。 解: 数 符 S = 0, 因 此 为 正 数 ; E = 10100011,(127)10 = 01111111, 所 以 e = E -127 = 10100011-01111111 = (36)10 尾 数 = 1. M= 1. 01101100000000000000000 = (1.421875)10 所 以 , 该 浮 点 数 的 十 进 制 值 为1.421875 2 36
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!