计算机原理【四】 之 运算方法及运算器
一、定点补码加、减法运算
1.补码加、减法运算的特点是什么
由于补码加、减法运算规则简单,实现起来也最方便,因此一般计算机都采用补码做加、减法运算。其运算特点是∶
(1)符号位和数值部分可以按相同规则一起参加运算;
(2)补码减法运算可以转换成加法运算;
(3)补码加减法运算是有”模”运算(符号位的进位自然丢失)。
2.补码加法运算规则
补码加法时,不管两个数是正数还是负数,按补码的和等于和的补码进行运算。
[X]补+[Y]补=[X+Y]补
例∶已知X=+1000000,Y=+0001000,求两数和的补码。
[x]补=01000000,[Y]补=00001000
[X+Y]补= [X]补+[Y]补=01001000
3.补码减法运算规则
补码减法可以转化为加法来做。
[X]补-[Y]补= [X]补+[-Y]补=[X-Y]补
例︰已知X=-0111000,Y=-O010001,进行补码的减法运算。
[X]补=11001000,[Y]补=11101111,[-Y]补=O0010001
[X]补-[Y]补= [X]补+[-Y]补=11011001
4.溢出判断方法
若两个有符号数进行加、减法运算的结果超出给定的取值范围,称为溢出。
进位检测方法︰用符号位的进位与最高数值位的进位的异或来检测,若异或结果是1,则溢出。
例∶已知X=+1011001,Y=+1000110,求两数的补码之和,并判断是否溢出。
[X]补=01011001,[Y]补=01000110
[X+Y]补=10011111
符号位的进位是0,最高数值位的进位是1,异或结果是1,表示溢出。
变形补码检测方法
例∶已知X=+1011001,Y=+1000110,求两数的补码之和,并判断是否溢出。
[X]补=001011001,[Y]补=001000110
[X+Y]补=010011111
符号位的代码是01,表示运算结果“正溢”
例:已知X=-1011001,Y=-1001110,求两数的补码之和,并判断是否溢出。
[X]补=110100111,[Y]补=110110010
[X+Y]补=101011001
符号位的代码是10,表示运算结果“负溢”
5.补码加、减法运算器
提高加法器运算速度的关键在于加快进位信号的传递速度。
为了提高加法器的运行速度,采用了超前(或先行)进位并行技术。
二、定点乘法运算
1.原码一位乘法的算法
采用原码做乘法运算时,乘积的符号位是两个乘数符号位的异或,而乘积的数值部分则是两乘数绝对值相乘。
运算规则:
1)被乘数和乘数均取绝对值参加运算,符号位单独处理;
2)为了避免中间结果溢出,被乘数、部分积取双符号位参加运算,部分积初值为0;
3)从乘数的最低位yn开始对乘数进行判断∶若yn=1,则部分积加上被乘数|X|,然后右移一位;若yn=0,则部分积加上0,然后右移一位;
4)重复第3步n次.
2.补码一位乘法的算法
3.什么是*并行阵列乘法器
因为串行一位乘法方案的速度太慢,执行一次乘法的时间至少是执行一次加法时间的n倍,所以采用高速的专用乘法部件是必要的,如并行阵列乘法器。
阵列乘法器可认为是全并行运算的乘法器。
三、定点除法运算
1.原码除法运算的规则
在原码做除法运算中,商的符号位是两数的符号位的异或运算。
商为Q,商的符号位为qf,则有∶
2.恢复余数除法的运算规则
1、被除数和除数都取绝对值参加运算,符号位单独处理。要求0<|被除数|≤|除数]。
2、被除数减除数得余数。
3、余数为正,上商“1”,余数左移1位,减去除数得新除数。余数为负,上商“O”,加除数(恢复原余数),然后余数左移一位,减去除数得新除数。
4、重复第(3)步一直到n位商。
3.不恢复余数法的规则
1、被除数和除数都取绝对值参加运算,符号位单独处理。
要求0<|被除数|≤|除数|。
2、被除数减除数得余数。
3、余数为正,上商“qi=1”,余数左移1位,减去除数得新除数。余数为负,上商“qi=0”,余数左移一位,加去除数得新除数。
4、重复第(3)步n次。
5、当第n步余数为负时需加上除数,以恢复正确的余数rn,最后的余数R=2-nrn(余数与被除数取同号)。
四、*浮点运算
1.浮点加、减运算的规则
设尾数用双符号位补码表示,经过加、减运算之后,只要对运算结果的符号位和小数点后的第一位进行比较:
如果他们不相等,即00.1xx...x或11.0xx.….x就是规格化的小数;
如果他们相等,就不是规格化的数。
2.浮点运算器的实现
从运算器结构来说,浮点运算器主要由两个定点运算部件组成,一个是阶码运算部件,一个是尾数运算部件。
阶码部件用来完成阶码加、减,以及控制对阶时小阶的尾数右移次数和规格化时对阶码的调整。
尾数部件用来完成尾数的四则运算以及判断尾数是否已规格化。
五、运算器
1.运算器的基本组成
计算机的运算器主要由算术逻辑运算单元、通用寄存器、状态字寄存器、有关的判断逻辑、局部控制电路和内部总线等组成。
运算器是计算机加工和处理数据的功能部件。
2.运算器的内部总线结构
相关推荐HOT
更多>>xml解析器
SAX解析器:基于事件驱动的解析器,逐行读取XML文件并触发相应的事件,适用于处理大型XML文件,但需要手动编写事件处理器来处理XML文件中的数据...详情>>
2023-03-21 16:03:51java全局变量
如果全局变量是一个对象,则可以更改该对象的状态,即使变量本身是final类型。当一个方法被调用时,会为该方法在栈上分配一块内存空间,用于存...详情>>
2023-03-17 10:01:40带你手把手解决Java常见Bug
刚开始学习Java语言的小伙伴, 很可能被各种各样的程序bug搞得焦头烂额, 甚至被劝退。别怕,小编将手把手带你了解Java中的异常体系, 如何识别Bug...详情>>
2023-03-13 16:05:00JavaScript 内的 this 指向
在 javascript 语言中, 有一个奇奇怪怪的 "关键字" 叫做 this详情>>
2023-03-07 15:21:00