运算方法和运算器_第1页
运算方法和运算器_第2页
运算方法和运算器_第3页
运算方法和运算器_第4页
运算方法和运算器_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 运算方法与运算器2.1.1 数值数据在机内的表示 在选择计算机的数值数的表示方式时,需要考虑以下几个因素: (1)要表示的数的类型 (小 数、整数、实数和复数 );(2)可能遇到的数值范围; (3)数值精确度; (4)数据存储和处理所需要 的硬件代价。2.1.1.1 定点数与浮点数 计算机处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是 约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数;另一 种是小数点位置可以浮动,称为浮点表示法,简称浮点数。1. 定点数表示法 (fixed-point) 所谓定点格式,即约定机器中所有数据的小数点位置是

2、固定不变的。在计算机中通常采 用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。 一般常称前者为定点小数,后者为定点整数。定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。2. 浮点数表示法 (floating-point number) 与科学计数法相似。2.1.1.2 数的机器码表示1. 原码表示法 原码表示法是一种比较直观的表示方法,其符号位表示该数的符号,正用“0”表示,负用“1”表示;而数值部分仍保留着其真值的特征。2. 补码表示法 由于计算机的运算受一定字长的限制,属于有模运算,所以,在计算机中可以使用补码 进行计算。在定点小数机

3、器中数最大不超过 1,也就是负的小数对“ 1”的补码是等价的。但 实际上,负数的符号位还有一个“ 1”,要把它看成数的一部分,所以要对 2 求补码,也就是 以 2 为模数。3. 反码表示方法反码表示法中,符号的表示法与原码相同。正数的反码与正数的原码形式相同;负数的 反码符号位为 1,数值部分通过将负数原码的数值部分各位取反 (0变 1,1变0)得到。4. 移码表示法 移码通常用于表示浮点数的阶码。2.1.2 非数值数据在机内的表示 计算机中数据的概念是广义的,机内除了有数值的信息之外,还有数字、字母、通用符 号、控制符号等字符信息有逻辑信息、图形、图像、语音等信息,这些信息进入计算机都转 变

4、成 0、1 表示的编码,所以称为非数值数据。2.1.2.1 字符的表示方法 字符主要指数字、字母、通用符号、控制符号等,在机内它们都被变换成计算机能够识 别的十进制编码形式。这些字符编码方式有很多种,国际上广泛采用的是美国国家信息交换 标准代码 (AmericanStandard Code for Information Interchange,) 简称 ASCII 码。2.1.2.2 汉字的表示方法1. 汉字的输入码 目前,计算机一般是使用西文标准键盘输入的,为了能直接使用西文标准键盘输入汉字, 必须给汉字设计相应的输入编码方法。其编码方案有很多种,主要的分为三类:数字编码、 拼音码和字形编

5、码。2. 汉字的内码3. 汉字字形码2.2.1 补码加法运算 补码加法的公式是: x 补 + y 补 = x + y 补 ( mod 2 ) 含义是:两个数的补码之和等于两个数之和的补码。2.2.2 补码减法运算x-y补=x补-y补=x补+-y补 ( mod 2 )2.2.3 溢出概念及检测方法在计算机中,若采用定点小数,数的表示范围为 |x|1,如果出现运算结果超出数的表示 范围的现象,就称为溢出。在采用定点整数的情况下,由于机器字长一定,所以能表示的数 据范围也是有限的,仍存在溢出问题。产生溢出会丢失有效数字,结果将是错误的,因此, 必须解决溢出的判断问题,当计算过程中出现溢出时,能及时处

6、理。两个正数相加,结果大于机器所能表示的最大正数,称为正溢。而两个负数相加,结果 小于机器所能表示的最小负数,称为负溢。为了判断“溢出”是否发生,可采用两种检测方法。1变形补码操作检测方法2单符号位操作检测方法2.2.4 基本的二进制加法 /减法器重点介绍一位全加器 (FA)。2.3.1 原码一位乘法。在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号按 异或运算得到,而乘积的数值部分则是两个正数相乘之积。设 n 位被乘数和乘数用定点小数 表示 (定点整数也同样适用 )被乘数 x 原 = xf .x0 x1 x2 xn乘数 y 原 = yf .y0 y1 y2 yn则乘

7、积 z 原 = ( xfyf ) . (0. x0 x1 x2 xn)(0 . y1 y2 yn)式中,xf 为被乘数符号, yf 为乘数符号。 乘积符号的运算法则是:同号相乘为正,异号相乘为负。由于被乘数和乘数和符号组合 只有四种情况 (xf yf = 00 ,01,10,11),因此积的符号可按“异或” (按位加)运算得到。数值部分的运算方法与普通的十进制小数乘法相类似,不过对于用二进制表达的数来说, 其乘法规则更为简单一些:从乘法 y 的最低位开始,若这一位为“ 1”,则将被乘数 x 写下; 若这一位为“ 0”,则写下全 0。然后再对乘数 y 的高一位进行的乘法运算,其规则同上,不过这一

8、位乘数的权与最低位乘数的权不一样,因此被乘数 x 要左移一位。依次类推,直到乘数 各位乘完为止,最后将它们统统加起来,便得到最后乘积 z 。2.3.2 补码一位乘法 原码乘法的主要问题是符号位不能参加运算,单独用一个异或门产生乘积的符号位。故 自然提出能否让符号数字化后也参加乘法运算,补码乘法就可以实现符号位直接参加运算。2.4.1 原码一位除法两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数 的数值部分相除求得。设有 n位定点小数 (定点整数也同样适用 ):被除数 x ,其原码为x 原 = xf . x1 x2 xn除数 y,其原码为y 原 = yf . y1 y

9、2 yn设商为 q = x/y,其原码为q原 = ( xfyf ). ( x1 x2 xn / y1 y2 yn )商的符号运算 qf= xfyf 与原码乘法一样,用模 2 求和得到。商的数值部分的运算,实质上是两正数求商的运算。根据我们所熟知的十进 制除法运算方法,很容易得到二进制数的除法运算方法,所不同的只是在二进制中,商的每 一位不是“ 1”就是“ 0”,其运算法则更简单一些。1恢复余数法 事实上,机器的运算过程和人毕竟不同,人会心算,一看就知道够不够减。但机器却不 会心算,必须先做减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时 必须恢复原来的余数,以便再继续往下运算,

10、这种方法称为恢复余数法。要恢复原来的余数, 只要当前的余数加上除数即可。2加减交替法 对恢复余数法来说,由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复 杂。实际上常用不恢复余数法,又称加减交替法。其特点是运算过程中如出现不够减,则不 必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。原码加减交替法的规则是:当余数为正时,商“ 1”,余数左移一位减除数;当余数为负 时,商“ 0”,余数左移一位,加除数。2.4.2 补码一位除法补码除法的被除数、除数用补码表示,符号位和数值位一起参加运算,商的符号位与数 值位由统一的算法求得。1补码加减交替法算法在补码一位除法中也必须

11、比较被除数 (余数 )和除数的大小,并根据比较的结果来上商。另 外,为了避免溢出,商的绝对值不能绝对值大于 1,即被除数的绝对值一定要小于除数的绝对 值。补码加减交替除法的算法规则如下:(1) 被除数与除数同号,被除数与减去除数;被除数与除数异号,被除数加上除数。(2) 余数和除数同号,商为 1,余数左移一位,下次减除数;余数和除数异号,商为0,余数左移一位,下次加除数。(3) 重复步骤 (2),包括符号位在内,共做 n+1 步。2商的校正补码一位除法的算法是在商的末位“恒置 1”的舍入条件下推导的。按照这种算法所得到 的有限位商为负数时,是反码形式。而正确需要得到的商是补码形式,两者之间至多

12、是相关 末位的一个“ 1”,这样引起的最大误差是 2 - n。在对商的精度没有特殊要求的情况下,一般 采用商的末位“恒置 1”的方式进行舍入,这样处理的好处是操作简单,便于实现。如果要求 进一步提高商的精度,可以不用“恒置 1”的方式舍入,而按上述法则多求一位后,再采用如 下校正方法对商进行处理:(1) 刚好能除尽时,如果除数为正,商不必校正;如果除数为负,则商加2 - n。(2) 不能除尽时,如果商为正,则不必校正;如果商为负,则商加2 - n。2.5.1 逻辑非逻辑非也称求反。对某数进行逻辑非运算,就是按位求它的反,常用变量上方加一横来 表示。2.5.2 逻辑加对两个数进行逻辑或,就是按位

13、求它们的“或” ,所以逻辑或又称逻辑加,常用记号“ V “或“ +”来表示。2.5.3 逻辑乘对两数进行逻辑与,就是按位求它们的“与” ,所以逻辑与又称逻辑乘,常用记号“” 或“”来表示。2.5.4 逻辑异或对两数进行逻辑异或就是按位求它们的模 2 和,所以逻辑异或又称按位加, 常用记号“” 来表示。2.6.1 多功能算术 /逻辑运算单元 (ALU)了解 74181ALU 算术 /逻辑运算功能表,并结合实验内容完成本部分的教学工作。2.6.2 内部总线 由于计算机内部的主要工作过程是信息传送和加工的过程,因此在机器内部各部件之间 的数据传送非常频繁。为了减少内部数据传送线并便于控制,通常将一些

14、寄存器之间数据传 送的通路加以归并,组成总线结构,使不同来源的信息在此传输线上分时传送。因此,所谓 总线,就是一个或多个信息源传送信息到多个目的的数据通路,它是多个部件之间传送信息 的一级传输线。根据总线所处的位置,总线分为内部总线和外部总线两类。内部总线是指 CPU 内各部件 的连线,而外部总线是指系统总线,即 CPU与存储器、 IO 系统之间的连线。本节只讨论内 部总线。按总线的逻辑结构来说,总线可分为单向传送总线和双向传送总线。所谓单向总线,就 是信息只能向一个方向传送。所谓双向总线,就是信息可以向两个方向传送,即可以发送数 据,也可以接收数据。总线的逻辑电路往往是三态的,即输出电平有三

15、种状态:逻辑“ 1”、逻辑“ 0”和“浮空” 状态。三态缓冲器是靠在“允许 /禁止”输入端来禁止其操作的,禁止时,输出呈现高阻抗状 态。在高阻抗状态下,可以认为输出与电路的其他部分被断开。2.6.3 定点运算器的基本结构运算器包括 ALU 、阵列乘除器、寄存器、多路开关、三态缓冲器、数据总线等逻辑部件。 运算器的设计,主要是围绕着 ALU 和寄存器同数据总线之间如何传送操作数和运算结果而进 行的。在决定方案时,需要考虑数据传送的方便性和操作速度,在微型机和单片机中还要考 虑在硅片上制作总线的工艺。计算机的运算器大体有如下三种结构形式:1单总线结构的运算器2双总线结构的运算器3三总线结构的运算器2.6.4 浮点运算器实例(了解)2.7.1 浮点加法和减法完成浮点加减运算的操作过程大体分为四步:1. 0 操作数的检查;2. 比较阶码

温馨提示

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

评论

0/150

提交评论