第二章 数码系统_第1页
第二章 数码系统_第2页
第二章 数码系统_第3页
第二章 数码系统_第4页
第二章 数码系统_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章数码系统 主要内容 计算机中的数据表示方法机器数的编码格式错误检测码 数据 数值数据 符号数据 无符号数 有符号数 浮点数 定点数 正整数 字符 汉字等 符号数据的表示方法 字符 美国标准信息交换代码 AmericanStandardCodeforInformationInterchange 简称ASCII码 7位二进制编码 可表示27 128个字符 符号数据的表示方法 汉字1 1981年我国制定了 信息交换用汉字编码字符集基本集GB2312 80 国家标准 每个二进制编码用两个字节表示 共收录一级汉字3755个 二级汉字3008个 各种符号682个 共计7445个 符号数据的表示方法 2 涉及多种编码 汉字输入码汉字内码汉字字型码 汉字的编码与输入1 数字编码数字编码是用数字串代表一个汉字的输入 常用 区位码例 中 5448国 2590 0190 0138 04112 拼音码用汉语拼音输入汉字 例 ZHONG 中GUO 国 3 字型编码以汉字的形式确定编码 常用 五笔字型4 其它输入方法郑码 智能等 汉字的存储字型码 用点阵组成的汉字的代码 构成字库内码 用于汉字的存储 交换 查询等 汉字的存储区位码 国标码与机内码的关系 汉字的输出 微机中 利用通用的显示器和打印机在主机内部由汉卡形成点阵 送到输出设备 图形汉字 举例 啊 字在第16区 第01位 可以参考GB2312 80文档 则它的区位码为1001H 1001H 2020H 3021H即它的国标码为3021H则它在计算机内部的存储为 3021H 8080H B0A1H Unicode 国际标准 目的是希望统一全世界各个国家的字符表示 便于国际间的交流 它用16个二进制比特 即两个字节来表示一个字符 总共能表示216 65536个字符 几乎可以包括世界上所有国家的字符 如汉字 英文 日文 韩文等 Java程序设计语言中的字符型数据就是采用Unicode编码 数据 数值数据 符号数据 无符号数 有符号数 浮点数 定点数 正整数 字符 汉字等 无符号数 正整数数值表示 x xn x2x1x0 xi 0 1 0 i nx x020 x121 xn2n数值范围0 x 2n 1 1例如 x 010101其数值 24 22 20 21 在数据处理的过程中 如不需要设置符号位可用全部字长来表示数值大小 如8位无符号数的取值范围是0 255 2 定点格式 容许的数值范围有限 但要求的处理硬件比较简单 浮点格式 容许的数值范围很大 但要求的处理硬件比较复杂 1 定点数的表示方法 定点表示 约定机器中所有数据的小数点位置是固定不变的 由于约定在固定的位置 小数点就不再使用记号 来表示 通常将数据表示成纯小数或纯整数 有符号数 定点整数 小数点固定在最低位数的右面定点小数 小数点固定在最高位数的后面 即纯小数表示 数值范围 纯小数0 x 1 2 n纯整数0 x 2n 1 目前计算机中多采用定点纯整数表示 因此将定点数表示的运算简称为整数运算 任意一个十进制数 可以写成 10E 计算机中一个任意进制数 可以写成 e mm 尾数 是一个纯小数 e 浮点的指数 是一个整数 R 基数 对于二进计数值的机器是一个常数 一般规定 为2 8或16 浮点数的表示方法 9 10 28 0 9 10 272 1033 0 2 1034 10E 十进制表示 尾数 用定点小数表示 给出有效数字的位数 决定了浮点数的表示精度 阶码 用定点整数形式表示 指明小数点在数据中的位置 决定了浮点数的表示范围 一个机器浮点数由阶码和尾数及其符号位组成 浮点表示方法 浮点数基值的选择浮点数的规格化 一个浮点数有不同的表示 0 5 0 05 101 0 005 102 50 10 2 为提高数据的表示精度 需做规格化处理 浮点数是数学中实数的子集合 由一个纯小数乘上一个指数值来组成 规格化目的 为了提高数据的表示精度为了数据表示的唯一性尾数为R进制的规格化 绝对值大于或等于1 R二进制的规格化数的表现形式 正数 1xxxxxx负数 1xxxxxx 主要内容 计算机中的数据表示方法机器数的编码格式错误检测码 原码表示方法 若定点小数的原码形式为x0 x1x2 xn 共n 1位 则原码表示的定义是 1 原码表示法 1 定点小数 原码表示方法 若定点整数的原码形式为x0 x1x2 xn 则原码表示的定义是 2 定点整数 例1 x 0 1001 则 x 原 0 1001x 0 1001 则 x 原 1 x 1 1001 例2 x 0 10110 0 10110 0 0000 对于0 原码机器中往往有 0 0 之分 故有两种形式 0 原 0 000 0 0 原 1 000 0 x 原 0 10110 1 10110 0 00001 0000 例3 x 1011总共用5位表示 n 4 x 原 01011x 1011 x 原 2n x 10000 1011 11011 原码小数的表示范围 最大值 1 2 n最小值 1 2 n 若原码小数的位数是8位时 其该数表示的最大值 最小值 8位 127 128 127 128 原码整数的表示范围 最大值 2n 1最小值 2n 1 若原码整数的位数是8位 其表示的最大值 最小值 8位 127 127 原码为符号位加上数的绝对值 0正1负 原码零有两个编码 0和 0编码不同 原码加减运算复杂 乘除运算规则简单 原码表示简单 易于同真值之间进行转换 3 结论 补码表示法 假设两位十进制数计算 77 38 77 62 13977 38 77 62 39 mod100 由此可以看出 减38和加62是等价的 前提是说对模为100是正确的 这个100在数学上称为模数 计算机中运算器 寄存器 计数器都有一定的位数 不可能容纳无限大的任意数 当运算结果超出实际的最大表示范围 就会发生溢出 此时所产生的溢出量就是模 module 因此 可以把模定义为一个计量器的容量 如 一个4位的计数器 它的计数值为0 15 当计数器计满15之后再加1 这个计数器就发生溢出 其溢出量为16 也就是模等于16 定点小数的溢出量为2 即以2为模 一个字长为n 1位的定点整数的溢出量为2n 1 即以2n 1为模 模的概念 定义 任意一个数X的补码记为 x 补 x 补 X M ModM 当X 0时X M M自动丢失 x 补 X ModM 当X 0时X M M X M x 补 X M ModM 若定点小数的补码形式为x0 x1x2 xn 则补码表示的定义是 2 定点小数 例 x 0 1011 则 x 补 0 1011 x 0 1011 则 x 补 10 x 10 0000 0 1011 1 0101 对于0 0 补 0 补 0 0000 mod2 注意 0的补码表示只有一种形式 若定点整数的补码形式为x0 x1x2 xn 则补码表示的定义是 3 定点整数 例 x 0111 则 x 补 00111 x 0111 则 x 补 24 1 0111 100000 0111 11001 n 1位补码整数 2n 2n 1n 1位补码小数 1 1 2 n 若补码小数的位数是8位时 其该数表示的最大值 最小值 1 1 2 7即 1 127 128 若补码整数的位数是8位 其表示的最大值 最小值 128 127 补码的表数范围 0 补 0 000 0 0 原 0 原 1 000 0 0 补 1 111 1 0 000 1 0 000 0 0 补在补码表示法中1 000 0用作比最小的负数还小的一个数 1 补码最高一位为符号位 0正1负 补码零有唯一编码 补码能很好用于加减运算 4 特点 补码满足 x 补 x 补 0 7 补 00111 最高位参与演算 与其它位一样对待 7 补 11001 算术移位 假设 x 补 x0 x1x2 xn x 2 补 x0 x0 x1x2 xn 1 最大的优点就是将减法运算转换成加法运算 X Y 补 X 补 Y 补 X Y 补 X 补 Y 补例如 X 11 10 1011 2Y 5 10 0101 2已知字长n 5位 X 补 Y 补 01011 11011 100110 00110 6 10注 最高1位已经超过字长故应丢掉 X Y 补 0110 补 00110 例设x 1010 y 1010 求 x 补和 y 补 解 根据补码的编码方法 正数的补码与它的二进制表示相同 所以加上符号位0后得 x 补 01010 x 补 00001010负数的补码的编码方法1 将二进制代码前加0010102 再全部按位取反101013 然后在最低位上加110110 y 补 10110 正数的补码在其二进制代码前加上符号位0 负数的补码是将二进制代码前加0后 再全部按位取反 然后在最低位上加1 补码编码的简便方法 原码与补码之间的转换 已知原码求补码正数 X 补 X 原负数符号除外 各位取反 末位加1例 X 1001001 X 原 11001001 X 补 10110110 1 10110111 X 补 27 1 X 100000000 1001001 10110111100000000 100100110110111 更简单的方法是 由 X 补求 X 补 运算过程是 将 X 补连同符号一起将各位取反 末位再加1 例 设字长N 8位X 1001001 X 补 01001001各位取反10110110末位再加110110111即 X 补 10110111 求值方法 补码与真值之间的转换 补码 符号位为 1 负 余下求补为数值部分 符号位为 0 正 余下为数值部分 例 X 补 01001001X 01001001 例 X 补 10000000X 10000000B 80H 128 反码表示法 1 定点小数定义 一般情况下 对于正数x 0 x1x2 xn 则有 x 反 0 x1x2 xn对于负数x 0 x1x2 xn 则有 所谓反码 就是二进制的各位数码0变为1 1变为0 例 x 0 10110 0 101100 0000 x 反 0 10110 1 01001 0 00001 1111 2 定点整数 3 结论反码零有两个编码 0和 0的编码不同 反码难以用于加减运算 反码的表数范围与原码相同 移码表示法 移码通常用于表示浮点数的阶码 假设定点整数移码形式为x0 x1x2 xn时 移码的定义是 8位移码表示的机器数为数的真值在数轴上向右平移了128个位置 表示范围 00000000 11111111 例1 当正数x 10101时 x 移 25 10101 1 10101 例2 当负数x 10101时 x 移 25 25 10101 0 01011例3 0的移码是唯一的 即 0 移 0 移 100 00 注意 移码中符号位x0表示的规律与原码 补码 反码相反 1 正 0 负 移码 补码和真值之间的关系 在移码中 最高位为0表示负数 最高位为1表示正数 这与原码 补码 反码的符号位取值正好相反 移码为全0时所对应的真值最小 为全1时所对应的真值最大 因此 移码的大小直观地反映了真值的大小 这将有助于两个浮点数进行阶码大小比较 真值0在移码中的表示形式是唯一的 即 0 移 0 移 100 00 移码把真值映射到一个正数域 所以可将移码视为无符号数 直接按无符号数规则比较大小 同一数值的移码和补码除最高位相反外 其他各位相同 移码的特点 码制表示法小结 X 原 X 反 X 补用 0 表示正号 用 1 表示负号 X 移用 1 表示正号 用 0 表示负号 如果X为正数 则 X 原 X 反 X 补 如果X为0 则 X 补 X 移有唯一编码 X 原 X 反有两种编码 移码与补码的形式相同 只是符号位相反 数据四种机器表示法中 1 移码表示法主要用于表示浮点数的阶码 2 补码表示对加减法运算十分方便 因此目前机器中广泛采用补码表示法 3 在一些机器中 数用补码表示 补码存储 补码运算 在有些机器中 数用原码进行存储和传送 运算时改用补码 还有些机器在做加减法时用补码运算 在做乘除法时用原码运算 小结 S 尾数符号 0正1负 M 尾数 纯小数表示 小数点放在尾数域的最前面 采用 原码 表示 E 阶码 采用 移码 表示 阶符采用隐含方式 即采用 移码 方法来表示正负指数 按照IEEE754的标准 32位浮点数和64位浮点数的标准格式为 把不满足这一表示要求的尾数 变成满足这一要求的尾数的操作过程 叫作浮点数的规格化处理 通过尾数移位和修改阶码实现 在计算机内 其纯小数部分被称为浮点数的尾数 对非0值的浮点数 要求尾数的绝对值必须 1 2 即尾数域的最高有效位应为1 称满足这种表示要求的浮点数为规格化表示 0 1000101010 规格化处理 既然非0值浮点数的尾数数值最高位必定为1 则在保存浮点数到内存前 通过尾数左移 强行把该位去掉 用同样多的尾数位就能多存一位二进制数 有利于提高数据表示精度 称这种处理方案使用了隐藏位技术 0 1100010 1 100010 当然 在取回这样的浮点数到运算器执行运算时 必须先恢复该隐藏位 隐藏位技术 规格化浮点数的真值 x 1 s 1 2 127e 127 一个规格化的32位浮点数 的真值为 32位浮点数格式 移码定义 x 1 s 1 2 1023 一个规格化的64位浮点数 的真值为 例 若浮点数x的二进制存储格式为 41360000 16 求其32位浮点数的十进制值 解 0100 0001 0011 0110 0000 0000 0000 0000数符 0阶码 1000 0010尾数 011 0110 0000 0000 0000 0000指数e 阶码 127 10000010 01111111 00000011 3 10包括隐藏位1的尾数 1 M 1 01101100000000000000000 1 011011于是有x 1 s 1 M 2e 1 011011 23 1011 011 11 375 10 例 将十进制数20 59375转换成32位浮点数的二进制格式来存储 解 首先分别将整数和小数部分转换成二进制数 20 59375 10100 10011然后移动小数点 使其在第1 2位之间10100 10011 1 010010011 24e 4于是得到 e 127S 0 E 4 127 131 1000 0011 M 010010011最后得到32位浮点数的二进制存储格式为01000001101001001100000000000000 41A4C000 16 解 0 75 3 4 0 112 1 1 2 1 1 1 1 0 10000000000000000000000 2 1 1 1 1 0 10000000000000000000000 2126 127s 1 E 12610 011111102 M 1000 000 1011 1111 0100 0000 0000 0000 0000 0000BF400000H 例 将十进制数 0 75表示成单精度的IEEE754标准代码 解 S 1 E 129 M 1 4 0 25 1 1 1 0 25 2129 127 1 1 25 22 1 25 4 5 0 例 求如下IEEE754单精度浮点数的十进制数值 11000000101000000000000000000000 解 12310 11110112 0 11110110002 27 7 移 10000 00111 10111 0 1111011000 补 0 111101

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论