第三章 运算方法和运算器
计算机组成原理 [袁春风]chap3_1
![计算机组成原理 [袁春风]chap3_1](https://img.taocdn.com/s3/m/6a0eacceaa00b52acfc7cacf.png)
15
南京大学计算机系 多媒体技术研究所 袁春风
3.2.3 先行进位ALU
(1)为什么用先行进位方式 行波进位是串行逐级传递的 整个和的生成受到行波进位的影响 因此 现代计算机采用一种先行进位(Carry look ahead)方式 (2)如何产生先行进位 定义两个辅助函数 Gi=aibi…进位生成 Pi=ai⊕bi…进位传递 通常把实现上述逻辑的电路称为进位生成/传递部件 全加逻辑方程 Si=Pi⊕Ci Ci+1=Gi+PiCi (i=0,1,…n) 设n=4,则 C1=G0+P0C0 C2=G1+P1C1=G1+P1G0+P1P0C0 C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0 由上式可知:各进位之间无等待 相互独立并同时产生 通常把实现上述逻辑的电路称为4位CLA部件 由此 根据Si=Pi⊕Ci 可并行求出各位和 通常把实现Si=Pi⊕Ci的电路称为求和部件 CLA加法器由“进位生成/传递部件” “CLA部件”和“求和部件”构成
高位进位逻辑表达式
9
南京大学计算机系 多媒体技术研究所 袁春风
全加和逻辑
10
南京大学计算机系 多媒体技术研究所 袁春风
全加和逻辑 续
11
南京大学计算机系 多媒体技术研究所 袁春风
全加器逻辑图
上述全加器和Sum的延迟为6ty,进位Cout的延迟为 (假定一个与/或门延迟为1ty 异或门的延迟则为
AL BL CL DL CS DS SS ES IP 16位
《计算机组成原理》名词解释

摩尔定律:对集成电路上可容纳的晶体管数目、性能和价格等发展趋势的预测,其主要内容是:成集电路上可容纳的晶体管数量每18个月翻一番,性能将提高一倍,而其价格将降低一半。
主存: 计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取。
控制器:计算机的指挥中心,它使计算机各部件自动协调地工作。
时钟周期:时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。
多核处理器:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。
字长:运算器一次运算处理的二进制位数。
存储容量: 存储器中可存二进制信息的总量。
CPI:指执行每条指令所需要的平均时钟周期数。
MIPS:用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,该指标以每秒钟完成的百万指令数作为单位。
CPU时间:计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。
计算机系统的层次结构:计算机系统的层次结构由多级构成,一般分成5级,由低到高分别是:微程序设计级,机器语言级,操作系统级,汇编语言级,高级语言级。
基准测试程序:把应用程序中使用频度最高的那那些核心程序作为评价计算机性能的标准程序。
软/硬件功能的等价性:从逻辑功能的角度来看,硬件和软件在完成某项功能上是相同的,称为软/硬件功能是等价的,如浮点运算既可以由软件实现,也可以由专门的硬件实现。
固件:是一种软件的固化,其目的是为了加快软件的执行速度。
可靠性:可靠性是指系统或产品在规定的条件和规定的时间内,完成规定功能的能力。
产品可靠性定义的要素是三个“规定”:“规定条件”、“规定时间”和“规定功能”。
MTTF:平均无故障时间,指系统自使用以来到第一次出故障的时间间隔的期望值。
MTTR:系统的平均修复时间。
MTBF:平均故障间隔时间,指相邻两次故障之间的平均工作时间。
可用性:指系统在任意时刻可使用的概率,可根据MTTF、MTTR和MTBF等指标计算处系统的可用性。
第三章 运算方法

第三章运算方法一名词解释(1)溢出——在运算过程中如出现数据超过这个数表示范围的现象,称溢出。
(2)运算器——运算器是一个用于信息加工的部件,又称执行部件。
它对数据进行算术运算和逻辑运算。
(3)并行加法器——全加器的位数与操作数的位数的加法器称并行加法器。
(4)进位链——进位信号的产生与传递的逻辑结构称为进位链。
(5)进位产生函数——当xi与yi都为1时,Ci=1,即有进位信号产生,所以将xiyi称为进位产生函数,以Gi表示。
(6)进位传递函数——当xi⊕yi=1、Ci-1=1时,则Ci=1。
这种情况可看作是当xi⊕yi=1时,第i-1位的进位信号Ci-1可以通过本位向高位传送。
因此把xi⊕yi称为进位传递函数,以Pi表示。
(7)桶形移位器——在选择电路的控制下可以实现左移、右移、直送操作的具有移位功能的电路。
一.选择题1.大部分计算机内的减法是用_____实现。
A.将被减数加到减数中B.从被减数中减去减数C.补码数的相加 D.补码数的相减2.原码加减法是_____。
A.操作数用原码表示,连符号位直接相加减B.操作数用原码表示,尾数直接相加减,符号位单独处理C.操作数用原码表示,根据两数符号决定实际操作,符号位单独处理D.操作数取绝对值,直接相加减,符号位单独处理3.补码加减法是指______。
A.操作数用补码表示,两尾数加减,符号位单独处理,减法用加法代替B.操作数用补码表示,符号位和尾数一起参加运算,结果的符号与加减相同C.操作数用补码表示,连符号位直接相加减,减某数用加负某数的补码代替,结果的符号在运算中形成D.操作数用补码表示,由数符决定两尾数的操作,符号位单独处理4.在原码加减交替除法中,符号位单独处理,参加操作的数是_____。
A.原码 B.绝对值C.绝对值的补码 D.补码5.两补码相加,采用1位符号位,则当_____时,表示结果溢出。
A.最高位有进位 B.最高位进位和次高位进位异或结果为0C.最高位为1 D.最高位进位和次高位进位异或结果为16.在下列有关不恢复余数法何时需恢复余数的说法中,正确的是_____。
02-原码一位乘法 PDF

右移部分积!乘数寄存器 • 需要长度为2n的积寄存器
从部分积和乘数寄存器取结果
第三章 3.3 原码一位乘法
3 原码一位乘法算法
• 符号位单独参加运算,数据位取绝对值参加运算。 •运算法则:
设: [X]原=X0.X1X2…Xn [Y]原=Y0. Y1Y2…Yn 则 :P0 = X0 Y0 |P| = |X|· |Y| •运算过程采用改进的乘法运算方法。
a. 说明乘法可由加法实现 b. 存在的问题: • 需要多输入的全加器(最多为n+1); • 需要长度为2n的积寄存器; •对应乘数的不同位,部分积左移次数不同, 且乘法过程中总移位次数多。
第三章 3.3 原码一位乘法 Nhomakorabea2
二进制乘法的手工计算过程
如何解决上述问题(改进的方法) • 需要多输入的全加器(最多为n+1)
计算机组成原理
第三章 运算方法与运算器
3.3 原码一位乘法
第三章 3.3 原码一位乘法
1
移位操作及其意义
CF
D15
逻辑左移:
D1 0
数据整体左移一位,最高位D15被移出至CF,最低位D1补0
移位前
0 1 1 0 1 1 10
逻辑左移后 0 1 1 0 1 1 1 0 0
CF
D15
算术左移:
D1 0
第三章 3.3 原码一位乘法
3
原码一位乘法算法
例1 已知 X = 0.110 Y= - 0.101 用原码一位乘法求X * Y
解: [X]原 = 0.110
[Y]原 = 1.101
部分积
|乘数| / 判断位
第3章运算方法与运算器

教学内容安排•第一章绪论•第二章数码系统•第三章运算方法和运算器•第四章存储系统•第五章指令系统•第六章中央处理器•第七章输入输出设备•第八章输入输出系统第三章运算方法和运算器• 3.1组成计算机硬件电路的基本逻辑部件• 3.2机器数的加减运算及其实现• 3.3定点乘法及其实现• 3.4定点除法及其实现(了解)• 3.5浮点数的算术运算(了解)• 3.6运算器的组教学重点和难点•基本逻辑运算和逻辑电路•机器数的加减运算•定点原码一位乘第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件逻辑电路的基本概念•表示电路中输入信号与输出信号之间的关系的运算,为逻辑运算•赋以逻辑属性值“0”或“1”的变量,为逻辑变量。
•描述逻辑变量关系的函数(F=f(A,B)),为逻辑函数•实现逻辑函数功能的电路,为逻辑电路•逻辑电路可以做成计算机系统中常用的部件,为逻辑部件。
•逻辑部件分为:组合逻辑部件和时序逻辑电路•描述逻辑函数的值与它的逻辑变量之间关系的表格,称作真值表。
第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件逻辑代数中基本逻辑运算•逻辑与(逻辑乘)•逻辑或(逻辑加)•逻辑非(逻辑求反)•逻辑异或•逻辑同或第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件1.“与”逻辑------实现的电路叫与门只有决定事物结果的全部条件同时具备时,结果才会发生(有一个条件不具备,结果也不会发生)。
闭合1闭合1逻辑表达式第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件2.“或”逻辑------实现的电路叫或门决定事物结果的诸条件中只要有任何一个满足时,结果就发生,这种因果关系叫做逻辑“或”,换句话说,只有所给条件均不具备,结果才不会发生。
第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件3.“非”(反)逻辑-----实现的电路叫非门(或反相器)如果条件具备了,结果便不会发生;而条件不具备时结果一定发生。
补码一位乘法

计算机组成原理第三章运算方法与运算器3.4 补码一位乘法1补码一位乘法的基本方法设[X]补= X0X1X2X3…X n[Y]补= Y0Y1Y2Y3…Y n可证明:[X⋅Y]补= [X]补•( 0.Y1Y2Y3…Yn) –Y0• [X]补进一步展开合并后可得:n[x•y]补=[x] 补•∑(y i+1-y i)2-i (符号位参加运算)i=01补码一位乘法的基本方法[x•y] 补=[x] 补• (y i+1-y i)2-i (符号位参加运算)补码一位乘法的运算规则如下:(1)如果y n+1=y n,部分积加0,部分积算术右移1位;(2)如果y n+1y n=10,部分积加[x]补,部分积算术右移1位;(3)如果y n+1y n=01,部分积加[-x]补,部分积算术右移1位.重复进行n+1步,但最后一步不移位。
包括一位符号位,所得乘积为2n+1位,其中n为数据位位数.1补码一位乘法的基本方法几个特殊问题的处理[x •y] 补=[x] 补• (y i+1-y i )2-i (符号位参加运算) 设[X]补= X 0X 1X 2X 3…X n [Y]补= Y 0Y 1Y 2Y 3…Y n(1)i=n 时,y n+1=?(2)y n+1是哪个寄存器?(3)算术右移的对象有哪些?y n+1=0在乘数寄存器Y 后增加的一位部分积和乘数寄存器均右移2补码一位乘法的举例例1 已知X= +1101 Y=+1011 用补码一位乘法求X⨯Y解:[X]补=01101 [Y]补=01011 [–X]补=10011部分积乘数说明000000 010110Y n+1< Y n部分积+[–X]补+ 110011110011→111001101011结果右移一位,Y n+1= Y n部分积+0+ 000000111001→111100 110101结果右移一位, Y n+1> Y n部分积+[X]补+ 0011010010012补码一位乘法的举例部分积乘数说明→000100 111010将结果右移一位, Y n+1< Y n部分积+[–X]补+ 110011110111→111011 111101将结果右移一位, Y n+1> Y n部分积+[X]补+ 001101001000∴[X⋅Y]补=010001111∴X⋅Y= 010001111。
计算机组成原理第三章运算方法与运算器(含答案)

第三章运算方法与运算器3.1定点数运算及溢出检测随堂测验1、定点运算器可直接进行的运算是() (单选)A、十进制数加法运算B、定点数运算C、浮点数运算D、定点数和浮点数运算2、设计计算机字长为8位,两个十进制数X = -97 ,Y = 63, [x]补- [y]补的结果为()(单选)A、01100000B、11011110C、负溢出D、正溢出3、下列关于定点运算溢出的描述中,正确的是( ) (多选)A、补码数据表时,同号数相加可能发生溢出B、补码数据表时,异号数相减可能发生溢出C、参加运算的两个数,当作为有符号数和无符号数进行加法运算时,不可能两者都溢出D、溢出检测既可用硬件实现,也可用软件实现4、设X为被加(减)数,Y为加(减)数,S为运算结果,均采用补码数据表示,下列关于溢出电路设计的描述中,正确的是()(多选)A、采用单符号位时,直接用X、Y和S的符号位就可设计溢出监测电路B、采用双符号位时,可直接用S的双符号位设计溢出检测电路C、采用单符号位时,可直接用X、Y最高有效数据位运算后的进位位和S的进位设计溢出监测电路D、对无符号数的加/减运算,可利用运算器的进位信号设计溢出检测电路3.2 定点数补码加、减运算器设计随堂测验1、如图所示为基于FA的运算器:为了利用一位全加器FA并配合使用控制信号P,当P= 0/1时实现A、B两个数的加法/减法运算,图中空白方框处电路的逻辑功能应该是()(单选)A、与门B、或门C、异或门D、非门2、如图所示为带溢出检测功能的运算器该电路完成的溢出检测功能是()(多选)A、带符号数的加法溢出检测B、带符号数的加法溢出检测C、无符号数的加法溢出检测D、无符号数减法的溢出检测3、下列关于并行进位的描述中,正确的是()(多选)A、并行进位可以提高运算速度B、并行进位模式下,各进位位采用不同电路各自产生,相互间不再有依存关系C、采用先行进位部件和ALU模块可构建长度可变的并行进位运算器D、并行进位只对加法有效,而对减法无效4、四位并行ALU中有两个特殊的输出端,分别是:G =A3B3+(A3+B3)(A2B2+(A2+B2)(A1B 1+ (A1+B1) A 0B0)) 为进位产生函数,P=(B3+A3) (B2+A2)( A1+B1 ) (A0+B0)为进位传递函数下列关于P、G的描述中,正确的是()(多选)A、设计P和G的目的是为了构建位数更长的并行ALUB、P和G对算术运算和逻辑运算都有意义C、P的作用是将本片ALU的最低进位输入位传递到本片ALU的最高进位输出端D、G的作用是根据参与运算的两个数据产生本片ALU的最高进位输出3.3 原码一位乘法随堂测验1、设计算机字长为8位,X = - 19,对该分别执行算术左移和逻辑左移一位后的结果分别为()(单选)A、11011010 ,11011010B、11110010 ,11110010C、11011000 ,11011000D、11110000 ,111100002、设计算机字长为8位,X = - 19,对该分别执行算术右移和逻辑右移一位后的结果分别为()(单选)A、11111001,11111001B、11111001,01111001C、11110110,01110110D、11110110,111101103、关于原码一位乘法的下列描述中,正确的是()(多选)A、数据取绝对值参加运算B、符号位单独处理C、乘法执行过程中的所有移位都是算术移位D、最后的结果由部分积寄存器和乘数寄存器共同保存4、计算机字长为n位, 下列关于原码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次算术右移和n 次加法运算B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 还是加x的绝对值,取决于此时的YnD、乘法过程中右移部分积是为了使部分积与下次的加数按位对齐3.4 补码一位乘法随堂测验1、16位补码0X 8FA0扩展为32位的结果是() (单选)A、0X 0000 8FA0B、0X FFFF 8FA0C、0X FFFF FFA0D、0X8000 8FA02、计算机字长为n位, 下列关于补码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次加法和n-1 部分积右移B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 、[x]补还是[-x]补,取决于此时的Yn+1 与Yn的差D、乘法过程中右移部分积的目的是为了使部分积与下次的加数对齐3、关于补码码一位乘法的下列描述中,正确的是()(多选)A、符号位和数据位一起参加运算B、运算开始前,需要在乘数寄存器Y后面补上Yn+1且其初值为0C、乘法执行过程中的对部分积的移位是算术右移D、最后的结果由部分积寄存器和乘数寄存器共同保存3.5 乘法运算器设计随堂测验1、下图为原码一位乘法器原理图正确的是()(单选)A、A: 部分积寄存器B:乘数寄存器C: |X| D: YnB、A: 部分积寄存器B:乘数寄存器C: |X| D: Yn+1C、A: 被乘数寄存器B:乘数寄存器C: |X| D: YnD、A: 被乘数寄存器B:乘数寄存器C: |X| D: Yn+12、下图为补码一位乘法原理图正确的是() (单选)。
计算机原理第三章运算方法和运算器综合练习

计算机原理第3章运算方法和运算器综合练习一、选择题知识点:定点补码的加法,减法,不带符号数的运算,溢出 P261、[X]补+[Y]补=[X+Y]补(mod 2n)2、[X-Y]补=[X+(-Y)]补= [X]补+[-Y]补(mod 2n)3、[-Y]补=[[Y]补]变补(注:连同符号位一起变反加1的过程叫变补或求补。
)4、判断溢出条件: C S+1和C S相异时溢出当C S+1C S=00或 C S+1C S=11时不产生溢出。
当C S+1C S=01或C S+1C S=10时则产生溢出。
1、计算机中实现减法运算使用的方法是()A.从被减数中减去减数 B.从减数中减去被减数再求反C.转换为补码的加法运算 D.依减数的形式再选择一种适当的方法2、定点数作补码加减运算时,其符号位是( )A.与数位分开进行运算B.与数位一起参与运算C.符号位单独作加减运算D.两数符号位作异或运算3、补码加减法运算是()A .操作数用补码表示,两数的尾数相加减,符号位单独处理,减法用加法代替B .操作数用补码表示,符号位与尾数一起参加运算,结果的符号与加减所得相同C .操作数用补码表示,连同符号位直接相加减,减某数用加负某数的补码代表,结果的符号在运算中形成D .操作数用补码表示,由数符决定两尾数的操作,符号位单独处理4、执行二进制算术运算11001001+00100111,其运算结果是()。
A) 11101111 B) 11110000 C) 00000001 D) 101000105、已知X的补码为11101011,Y的补码为01001010,则X+Y的补码为()。
A、10100001B、11011111C、00110101D、溢出6、已知X的补码为11101011,Y的补码为01001010,则X-Y的补码为()。
A、10100001B、11011111C、10100000D、溢出7、下面关于溢出的描述正确的是()A 溢出就是进位B 溢出是指运算结果的最高位向更高位进位或借位C 溢出与补码运算中的模丢失是一个概念D 溢出主要用于判断带符号的运算结果是否超过数的表示范围8、定点运算器运算时产生溢出的原因是()。
计算机组成原理与汇编语言3

补码加减运算
注意:求一个数的补码: 正数时,补码和原码相同; 负数时, 对原码除符号位外求反加1。
例1: 1: y = -0.0110 [y]补 = 1.1010 例2: y = 0.0111 [y]补 = 0.0111 [-y]补 = 1.1001 [-y]补 = 0.0110
第三章 数值运算及运算器
例(3):按位清
设:A=10010010,将A最高位清“0” 设:B=01111111 10010010 A ∧ 01111111 B ——————— 00010010 A
第三章 数值运算及运算器
例(4):按位测试
设:A=10010010,测A最高位是否为“1”; 设: B=10000000 10010010 ∧ 10000000 ——————— 10000000 结果不全为“0”,表明被测码的被测位为“1”。 结果为全“0”,表明被测码的被测位为“0”。
第三章 数值运算及运算器
(一)对进位公式的分析 设相加的两个n位操作数为: A=An-1An-2…Ai..A0 B=Bn-1Bn-2…Bi..B0
Ci+1 = AiBi + (Ai⊕Bi) Ci —— 进位逻辑表达式 设:Gi = AiBi —— 进位产生函数(Carry Generate Function)
二、溢出检测
1. 采用一个符号位判断
规则: • 当两个同号数相加,若所得结果符号与两数符号不同, 则表明溢出。 • 设An、Bn分别表示两个操作数的符号; Sn表示结果 的符号, 则有: 溢出=AnBnSn + AnBnSn
63+66=129 0,0111111 + 0,1000010 1,0000001
c03 运算方法与运算器

3、根据加数、被加数、和的符号判断 (1)当操作数中的加数与被加数符号相同 时,若结果的符号与操作数的符号不一 致,表示溢出;否则,表示无溢出。 (2)当两个符号不同的操作数相加时,肯 定不会产生溢出。 例:[X]补=0.1010,[Y]补=0.1001 [X]补+[Y]补=1.0011(溢出)
练习题及参考答案
3.2 定点乘法运算及其实现
实现乘除法运算的方案: 1、使用乘除运算较多,速度要求高时, 硬件直接实现; 2、一般情况,配臵乘除法选件; 3、而对速度要求不高的机器,用软件 实现.
3.2.1 原码一位乘法
1、手算过程(两个无符号数) 例: +0.1101×-0.1011
× 1 0 0 1 1 0 1 0 0 0
1.已知:X=-0.01111,Y=+0.11001, 求[X]补,[-X]补,[Y]补,[-Y]补,X+Y=? X-Y=? 并判断是否溢出。 2.用补码运算方法求X+Y=?并判断是否溢 出。 (1)X=0.1001,Y=0.1100 (2) X=-0.0100,Y=-0.1001 3.用补码方法求X-Y=?并判断是否溢出。 (1)X=-0.0100,Y=0.1001 (2) X=-0.1011,Y=0.1010
原码一位乘法
例:已知X=+0.1101 Y=-0.1011 求(X ×Y)原 解:[X]原 =0.1101 [Y]原 =1.1011 Zf = Xf Yf = 1 0 =1 则按原码一位乘法运算规则,求[X×Y]原 的数值部分。 最后求得[X×Y]原 = 1.10001111
流 程 图
判断溢出的方法:
例2 X=0.1011 Y=0.1001 求[X+Y]补 解: [X]变补 = 00.1011 [Y]变补 = 00.1001 [X+Y]变补 = 00.1011 + 00.1001 = 01.0100
第三章 运算方法及运算部件习题

第三章运算方法及运算部件一、选择题:将正确的答案序号填在横线上1.下列数中最小的数是______。
A.(1010011.10101)2 B.(123.55)8C.(53.B0)16 D.(83.75)102.某数在计算机中用8421BCD码表示为0011 1001 1000,其真值为______。
A.398 B.398H C.1630Q D.1110011000B3.ASCII码是对(1)_进行编码的一种方案,它是(2)_的缩写。
(1)A.字符 B.汉字 C.图形符号 D.声音(2)A.余3码 B.十进制数的二进制编码C.格雷码 D.美国标准信息交换代码4.一个1G的硬盘,最多可存放______个ASCII字符。
A. 220B.224 C. 210 D. 2305.存储32个汉字的机内码需要______。
A.16字节 B.32字节 C.64字节 D.128字节6.机器数10000001B,它所代表的数______。
A.一定是-1 B.一定是-127C.一定是-126 D. 以上3个数都有可能7. 假定一个十进制数为-66,按补码形式存放在一个8位寄存器中,该寄存器的内容用十六进制表示为______。
A.C2H B.BEH C.BDH D.42H8.如果X是负数,由[X]补求[X]原是将______。
A.符号位变反,其他各位不变 B.所有位求反,末位加1C.除符号位外,其他位求反后末位加1D.除符号位外,其他位求反9.下列数中,最大的是______。
A.[X]补=1001101 B.[X]原=1001101C.[X]反=1001101 D.[X]移=100110110. 计算机内的溢出是指其运算的结果______。
A.为无穷大B.超出了计算机内存单元所能存储的数值范围C.超出了该指令所指定的结果单元所能存储的数值范围11.计算机中表示地址时使用______。
A.无符号数 B.原码 C.反码 D.补码12. 计算机系统中采用补码运算的目的是为了______。
计算机组成原理第3章 运算器和运算方法

第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。
2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。
(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。
(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。
计算机组成与系统结构(裘雪红)课件 (3)[135页]
![计算机组成与系统结构(裘雪红)课件 (3)[135页]](https://img.taocdn.com/s3/m/4b7f09f74b35eefdc9d33385.png)
第3章 运算方法与运算器
第3章 运算方法与运算器
(2)进位判决法。若Cn-1表示最高数值位产生的进位,Cn 表示符号位产生的进位(即进位标志 CF),则溢出标志 OF的逻 辑表示式为
第3章 运算方法与运算器
(3)根据运算结果的符号位和进位标志判别。该方法适 用于两个同号数求和或异号数 求差时判别溢出。溢出标志 OF的逻辑表达式为
图3.2 行波进位加法器
第3章 运算方法与运算器
从图3.2中可以看出: ① 加法器的进位逐位产生。 ② 加法器的和逐位生成。 ③ 图3.2中利用异或门实现了式(3.4)的溢出判别逻辑,该 异或门的输入是Cn-1和Cn。
第3章 运算方法与运算器
(2)并(先)行进位加法器(CLA)。行波进位加法器结构简 单,实现成本低。但其致命 的缺点在于,随着加法器位数的增 加,串行生成的进位会造成加法速度大为降低。一种有 效的 改进方法是同时生成所有低位向高位的进位。
第3章 运算方法与运算器 1.补码加减法 补码加法的运算法则为
由式(3.1)可以看到,两数和的补码就等于两数补码之和。 利用补码求两数之和十分 方便。
第3章 运算方法与运算器 例3.1 有两个定点整数63和35,利用补码加法求63+35。 解 根据题意,用8位二进制补码表示63和35为
则
第3章 运算Βιβλιοθήκη 法与运算器第3章 运算方法与运算器
第3章 运算方法与运算器
图3.3 四位先行进位产生电路
第3章 运算方法与运算器
图3.4 n 位先行进位加法器
第3章 运算方法与运算器
(3)组内并行组间串行进位加法器。组内并行组间串行 进位又称为单级先行进位。组 间进位是串行的,即每个组的 进位输入是相邻低位组的进位输出,而每个组的进位输出是 相邻高位组的进位输入。串行进位链的总延迟时间与分组数 目成正比。
运算方法与运算器

16、若寄存器内容为11111111,若它等于+127,则寄存 器内容为()码;若它等于-1,则为()码。
17、若寄存器内容为00000000,若它等于-128,则寄存 器内容为()码;
18、 若寄存器内容为10000000,若它等于-128,则寄存 器内容为()码;
定点数的乘/除运算; 溢出概念和判别方法;
3、浮点数的表示与运算
(1)浮点数的表示:浮点数的表示范围;IEEE754标 准 (2)浮点数的加/减运算
4、算术逻辑单元ALU
(1)串行加法器和并行加法器 (2)算术逻辑单元ALU的功能和结构
误点疑点解惑(一)
1、真值和机器数的区别 2、模与补码表示法 3、原码和补码的区别 4、定点数的表示范围 5、浮点数的表示范围 6、浮点数规格化 7、移码偏置值的选择 8、定点数与浮点数的比较 9、3种汉字编码的区别 10、十进制数的BCD编码
立
27、补码定点整数10010101右移一位后的值是()
28、补码定点整数0101 0101左移2位后的值是()
29、补码的加减法是指()
30、在补码加减法中,用两位符号位判断溢出,判断规 则是怎样的?
31、补码相加,采用一位符号位,什么情况表示溢出?
32、变补操作的含义是(),如何实现变补操作?
33、原码乘法的运算规则是怎样的?
38、为什么现代计算机都用补码来表示整数?
39、假设有两个整数x和y,x=-68,y=-80,采用补码表示(含1位 符号位),x和y分别存放在寄存器A和B中。另外,还有两个 寄存器C和D。A,B,C,D都是8位寄存器。请回答下列问题(用 十六进制表示二进制序列):
浮点数加减运算

出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和7
位(均含2位符号位)。若有两个数X=27×29/32,Y=25×5/8,则用浮点
加法计算X+Y的最终结果是:
A.00111 1100010 B. 00111 0100010 C.01000 0010001 D. 发生溢出 解题思路: • X= 2 00111 × 0.11101; Y = 2 00101 × 0.101 ;对阶后大的阶码为00111 • 位数相加后的结果为:01.00010, • 尾数需右移规格化,同时阶码加1后变成 01 000
[X+ Y]补= 00 011 ,11 . 000101011
4) 舍入 ( 0 舍 1入)
在结果尾数的最低位加1,最后的结果为: [X+ Y]补= 00 011 ,11 . 00010110 X+Y = – 0.11101010 2 011
第三章 3.7 浮点数加减运算
4
浮点数加减运算举例
例2 浮点数加减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢
第三章 3.7 浮点数加减运算
4
浮点数加减运算举例
例 设 x = 2 010 × 0.11011011 y = 2 100 × (- 0.10101100) 求 x+y
2)尾数运算 00.00110110 11 + 11.01010100 11.1000101011 3) 尾数规格化处理
分析发现,只左移一次即可达到规格化要求。规格化后的结果为:
计算机组成原理
第三章 运算方法与运算器
3.7 浮点数加减运算
第三章 3.7 浮点数加减运算
1
规格化浮点数的概念
b o o t h 算 法

第三章运算方法与运算器文章目录定点补码加减法运算补码加减法运算方法溢出及检测溢出检测操作数与运算结果的符号位是否一致最高位的进位和符号位的进位是否一致变形补码补码加减法的逻辑实现移码加减运算及实现逻辑移码的加法运算移码加减法的溢出判断直接采用移码运算的溢出判断方法采用双符号判断定点乘法运算机器数的移位操作原码一位乘法原码一位乘法符号位的确定乘积的数值补码一位乘法运算规则(booth算法)阵列乘法器定点除法运算原码一位除法原码恢复余数法原码不恢复余数法不恢复余数的补码一位除法浮点运算浮点数加减运算阶码和尾数采用补码表示的浮点数加减运算IEEE 754浮点数的加减运算浮点数乘法运算浮点数除法运算逻辑运算运算器定点运算器运算前的基本组成单元算术逻辑运算单元通用寄存器组输入输出数据选择控制内部总线运算器的基本结构单总线双总线三总线浮点运算器基本算术逻辑单元的设计基本算术、逻辑部件基本算术逻辑运算单元设计串行进位加法器并行加法器定点补码加减法运算补码加减法运算方法补码加法:[x]补 + [y]补 = [x + y]补 mod M补码减法:[x]补 - [y]补 = [x - y]补 mod M溢出及检测运算结果超出数据类型所能表示数据范围的现象称为溢出溢出检测操作数与运算结果的符号位是否一致只有符号相同的数相加,才有可能产生溢出,因此检测运算结果的符号位,是否与操作数一致设操作数为S1XXXX和S2XXXX,其中S1和S2为他们的符号位,结果为SXXXX,S是结果的标志位,V是溢出标志位,那么V = S1 S2 !S + !S1 !S2 S如果符号位不同,则S1和S2必定是0和1的组合,其结果V一定为0 如果符号位相同,则可能同时为0或者同时为1,这时就要看结果的符号位S了最高位的进位和符号位的进位是否一致最高位C和符号位S的进位,如果不同步,则发生了溢出变形补码变形补码就是用两个位来表示符号位,正数符号位00,负数符号位11 如果运算后的结果为01,则上溢,10则下溢补码加减法的逻辑实现利用一位全加器(FA)作为基本的加法单元,低位FA的进位,直接送到相邻高位FA的进位输入,构成一个串行进位链进行加法运算时,直接送入全加器,进行减法运算时,减数先求补采用基于变形补码的双符号位溢出检测方法不支持逻辑运算移码加减运算及实现逻辑移码的加法运算公式1:[x]移 + [y]移 = [x + y]移 + 2^n公式2:[x]移 + [y]移 = [x + y]补公式3:[x]移 + [y]补 = [x + y]移 mod 2^(n+1)求移码的加法有三种方式直接对两数的移码求和,然后将高位取反直接求出两数和的补码,然后将高位取反用一个数的移码,加另一个数的补码移码加减法的溢出判断直接采用移码运算的溢出判断方法只有符号相同的加法,才会溢出正数的移码,符号位为1,如果两个正数的移码相加,符号位1+1=0,结果的符号位变成0因此,移码相加后,符号位与操作数相同,则发生了溢出采用双符号判断S1S2 = 00,结果为负,未溢出S1S2 = 01,结果为正,未溢出S1S2 = 10,上溢S1S2 = 11,下溢定点乘法运算机器数的移位操作移位操作是乘法实现过程的基本操作,又分为逻辑移位和算术移位逻辑移位:左移和右移,空出来的位置都补0算术移位:左移时低位补0,右移时高位补符号位原码一位乘法原码一位乘法符号位的确定两个乘数符号位的异或乘积的数值由于符号位已经单独处理了,所以乘积就是绝对值相乘用循环累加和移位操作实现乘法运算两个n位数参加乘法运算,要做n次加法和移位操作补码一位乘法运算规则(booth算法)被乘数一般取双符号位参与运算乘数末位增设附加位Y(n+1),初值为0利用Y(n+1) 与 Yn 的差,决定下一步的具体运算按照上述算法进行n+1步累加操作,n步右移操作Y(n+1) - Yn部分积右移一位部分积加[x]补后,右移一位部分积加[-x]补后,右移一位阵列乘法器一位乘法通过逐位判断、右移、循环累加来实现,速度较慢,为了提高乘法速度,可以采用硬件方式实现阵列乘法器,其基本思想是采用类似手工乘法运算的方法,用大量与门产生手工乘法中的各乘积项,同时将大量一位全加器按照手工乘法算式中需要进行加运算的各相关项的排列方式组成加法器阵列定点除法运算除法运算与乘法运算的处理思想相似,通常是将n位数的除操作转换成若干次的加减和移位来实现原码一位除法原码恢复余数法被除数(余数)减去除数,如果为正则够减商1,如果为负则不够减商0,而且被除数(余数)要恢复到减之前的值,这就叫恢复余数法为了防止溢出,除法运算(x - y)一定要满足(|x| |y|),保证商的绝对值不超过1,因此第一次上商的值,要放在商的符号位,后面上的商,从小数点后依次排列,商的位数一般与除数相等,因此最后一次上商后,就不用做减法和移位了原码不恢复余数法与恢复余数法相比,进行比较后,如果商1则算法不变,如果商0则不恢复余数,先移位再加上除数当余数为正时,商1,余数左移一位,减去除数当余数为负时,商0,余数左移一位,加上除数不恢复余数的补码一位除法算法规则如下被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数余数与除数同号,商1,余数左移一位减去除数;余数与除数异号,商0,余数左移一位加上除数一般情况下,对于商的精度没有特殊要求,商的末位“恒置1”如果要求提高精度,则多求一位商,再用校正的办法对商进行处理当刚好能除尽时,如果除数为正,则商不必修正;如果除数位负,则商需要校正当不能除尽时,如果商为正,则不必修正;如果商为负,则商需要校正求得n位商后,得到的余数往往是不正确的,正确的余数常需要根据具体情况做适当的处理若商为正,当余数与被除数符号相同,则不需处理;当余数与被除数异号时,则应将余数加上除数进行修正才能获得正确的余数若商为负,当余数与被除数同号时,则余数不需要处理;当余数与被除数异号时,则余数需要减去除数进行校正余数之所以需要校正,是因为补码不恢复余数法除法运算过程中先比较上商的缘故浮点运算浮点数常用规格化数进行运算浮点数加减运算阶码和尾数采用补码表示的浮点数加减运算对阶:对阶的原则是小的阶码向大的看齐,因为小阶码增大时,尾数部分右移而减小,损失的是最低位,对精度影响不大尾数运算:对阶完成后,按照定点数的加减法运算执行尾数加减操作结果规格化:为了处理方便,一般取两位符号位,当尾数符号位01或10时,需要向右规格化,将尾数右移一位,同时阶码加一;当尾数为11.1xxx 或00.0xxx时,需要左移规格化,左移次数不固定,直到尾数部分出现11.0xx或00.1xx为止舍入:在对阶右移和结果规格化右移时,会丢掉末尾的值,常用的舍入方法末位恒置1法:只要右移时丢失过1,则末位置10舍1入法:当丢失位数最高位为1时,尾数末尾加1溢出判断:只有阶码溢出时,才产生溢出,阶码符号位为01和10时溢出IEEE 754浮点数的加减运算IEEE 754浮点数的阶码采用移码表示,尾数采用原码表示,且尾数的最高位隐藏,因此算法与之前都采用补码的形式不同对阶和规格化过程中,阶码的运算采用移码的加减运算尾数的运算采用原码运算法则,且隐藏位要参与尾数运算隐藏位参与尾数规格化判断及尾数规格化过程溢出判断,上溢时阶码全1,下溢时阶码全0浮点数乘法运算阶码相加尾数相乘结果规格化浮点数除法运算尾数调整:检查被除数的尾数是否小于除数的尾数(考察绝对值),如果被除数的尾数大于除数尾数,则将被除数的尾数右移一位并调整阶码。
(计算机原理)第3章运算方法与运算器

比较器
位串比较器和选择器 的实现,包括旁路比 较器和等效比较器的 应用。
控制电路
精度控制电路和后继 累加器的设计和应用, 提高运算精度和性能。
乘法示例
乘法运算的具体示例,讲解乘法 过程和计算结果。
定点数的除法运算
1被除数与除数的转换和余数计算。
2 除法电路
除法电路的设计和实现,包括整除器和余数计算器。
3 除法示例
除法运算的具体示例,讲解除法过程和计算结果。
浮点数的加减法运算
1
浮点数表示
浮点数的格式和表示方法,包括阶码和尾数的位数分配。
逻辑运算
包括布尔运算的实现,逻辑 运算与算术运算的转换,以 及位串比较器和选择器的应 用。
运算器的基本概念和分类
1 基本概念
运算器是一种用于进行算术和逻辑运算的电路,由算术逻辑单元(ALU)和控制单元组成。
2 分类
根据数据长度可分为多位数运算器和单位数运算器;根据功能可分为通用运算器和特殊 运算器。
2
加法运算
浮点数加法的原理和算法,包括对阶、尾数对齐和规格化。
3
减法运算
浮点数减法的原理和算法,包括对阶、尾数对齐和规格化。
浮点数的乘法运算
1 乘法算法
浮点数乘法的原理和算法,包括尾数相乘和阶码相加。
2 乘法电路
浮点数乘法电路的设计和优化,包括乘法器和累加器。
3 乘法示例
浮点数乘法的具体示例,讲解乘法过程和计算结果。
(计算机原理)第3章运算 方法与运算器
学习计算机原理第3章的运算方法与运算器,包括运算方法的分类、运算器的 基本概念和分类,以及不同类型数的加减法、乘法、除法运算,逻辑运算, 和位移运算等。
运算方法分类与特点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章运算方法和运算器第一节定点数的加、减法运算及实现1.原码加/减法运算加法规则:先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减法,|大| -|小|,结果符号与|大|相同。
减法规则:两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。
补码加法的公式:[ x ]补+[ y ]补=[ x+y ]补(mod 2)在模2意义下,任意两数的补码之和等于该两数之和的补码。
这是补码加法的理论基础。
2.补码加法运算特点:不需要事先判断符号,符号位与码值位一起参加运算。
符号位相加后若有进位,则舍去该进位数字。
补码加法的特点:(1)符号位要作为数的一部分一起参加运算;(2)在模2的意义下相加,即大于2的进位要丢掉。
其结论也适用于定点整数。
例: x=0.1001, y=0.0101, 求x+y。
解: [x]补=0.1001, [y]补=0.0101[x]补0. 1 0 0 1+[y]补0. 0 1 0 1[x+y ]补0. 1 1 1 0所以x+y=+0.1110 例: x=+0.1011, y=-0.0101, 求x+y。
所以x+y=0.0110解: [x]补=0.1011,[y]补=1.1011[x]补0. 1 0 1 1+[y]补1. 1 0 1 1[x+y]补10. 0 1 1 03.补码减法减法运算化为加法完成。
关键是求[-Y]补补码减法运算的公式:[ x -y ]补=[ x ]补-[ y ]补=[ x ]补+[-y ]补公式证明:只要证明[–y ]补=–[y ]补, 上式即得证。
∵[x +y ]补=[x ]补+[ y ]补(mod 2)令y = -x∴[0]补=[x ]补+ [ -x ]补故[-x]补=-[ x]补(mod 2)证明:两数差的补码等于两数补码之差求补运算:[Y]补→ [-Y]补•求补规则:将[Y]补包括符号位在内每一位取反,末位加1。
•若[Y]补= Y0,Y1……Yn ,则:•若[Y]补= Y0.Y1……Yn ,则:1Y Y Y [-Y]n 10+= 补1Y Y Y [-Y]n 1000.0 +=补例:[X]补=0.1101,则:[-X]补= ?[Y]补=1.1101,则:[-Y]补= ?1.00110.0011例: x=+0.1101, y=+0.0110, 求x-y。
解:[x]补=0.1101[ y]补=0.0110[ -y]补=1.1010∴x-y=+0.0111解:[x]补=1.0011 [y]补=1.1010 [-y]补=0.0110[x]补1.0 0 1 1+ [-y]补0.0 1 1 0[x-y]补1.1 0 0 1例:x= -0.1101,y= -0.0110,求x-y=?∴x -y = -0.0111 [x]补0.1 1 0 1+[-y]补1.1 0 1 0[x-y]补1 0.0 1 1 1补码加减运算举例•例:已知X=+1011,Y=-0100,用补码计算X+Y和X-Y。
–写出补码:[X]补=0,1011 [Y]补=1,1100 [-Y]补=0,0100 –计算:0,1011+1,11000,0111[X+Y]补= 0, 01110,1011+0,01000,1111[X-Y]补= 0, 1111例、设X=+0.125,Y=+0.625,求X+Y=?X-Y=?解、X=+0.0010,Y=+0.1010[X]原= 0.0010、[Y]原= 0.1010[X]补= 0.0010、[Y]补=0.1010、[-Y]补=1.0110[X]补0.0010+ [Y]补0.1010[X+Y]补0.1100X+Y=+0.1100=+0.75[X]补0.0010+ [-Y]补 1.0110[X-Y]补 1.1000[X-Y]原=1.1000X-Y=-0.1000=-0.5例、设X=-0.0625,Y=-0.75,求X+Y=?X-Y=?解、X=-0.0001,Y=-0.1100[X]原= 1.0001、[Y]原= 1.1100[X]补= 1.1111、[Y]补=1.0100、[-Y]补=0.1100 [X]补1.1111+ [Y]补1.0100[X+Y]补1.0011[X+Y]原=1.1101X+Y=-0.1101=-0.8125[X]补1.1111+ [-Y]补0.1100[X-Y]补0.1011[X-Y]原=0.1011X-Y=+0.1011=+0.6875例、设X=-0.125,Y=+0.5625,求X+Y=?X-Y=?解、X=-0.0010,Y=+0.1001[X]原= 1.0010、[Y]原= 0.1001[X]补= 1.1110、[Y]补=0.1001、[-Y]补=1.0111[X]补1.1110+ [Y]补0.1001[X+Y]补0.0111[X+Y]原=0.0111X+Y=+0.0111=+0.4375[X]补1.1110+ [-Y]补1.0111[X-Y]补 1.0101[X-Y]原=1.1011X-Y=-0.1011=-0.6875例、设X=+0.1010,Y=0.0101,求[X+Y]补=?解[X]补= 0.1010 ,[Y]补= 0.0101[X+Y]补=[0.1010+0.0101]补=[0.1111]补=0.1111[X]补+[Y]补=0.1010+0.0101=0.1111即[X+Y]补=[X]补+[Y]补=0.1111例、X=0.001010 Y=-0.100011 求[X-Y]补解[X]补=0.001010,[-Y]补=0.100011则[X-Y]补= [X]补+[-Y]补= 0.001010 + 0.100011 = 0.101101当补码加法运算的结果不超出机器范围时有:(1) 用补码表示的两数进行加法运算,其结果仍为补码。
(2) [X+Y]补=[X]补+[Y]补。
(3) 符号位与数值位一样参与运算。
对于减法运算,因为[X-Y]=[X]补+[-Y]补,所以计算时,补可以先求出-Y的补码,然后再进行加法运算,这样在用逻辑电路实现加减法运算时,可以只考虑用加法电路,而不必设置减法电路。
二、补码加减运算的溢出判断•当运算结果超出机器数的表示范围时,称为溢出。
计算机必须具备检测运算结果是否发生溢出的能力,否则会得到错误的结果。
•对于加减运算,可能发生溢出的情况:同号(两数)相加,或者异号(两数)相减。
溢出及与检测方法在定点小数机器中,数的表示范围为|x|<1。
在运算过程中如出现大于1的现象,称为“溢出”。
机器定点小数表示上溢下溢1.概念发生溢出的原因,是因为运算结果超出编码所能表示的数字大小。
两个正数相加: 结果大于机器所能表示的最大正数,称为上溢;两个负数相加:结果小于机器所能表示的最小负数,称为下溢。
解:[x]补=0.1011[y]补=0.1001[x]补0. 1 0 1 1+[y]补0. 1 0 0 1[x+y]补1. 0 1 0 0例:x=+0.1011, y=+0.1001, 求x+y。
例:x= -0.1101, y= -0.1011, 求x+y。
解:[x]补=1.0011[y]补=1.0101[x]补1. 0 0 1 1+[y]补1. 0 1 0 1[x+y]补0. 1 0 0 0两个正数相加的结果成为负数,这显然是错误的。
两个负数相加的结果成为正数,这同样是错误的。
0 .1 0 1 0 1+0 .0 1 0 0 00 .1 1 1 0 11 .1 0 1 0 1+1 .1 1 0 0 01 .0 1 1 0 11正常结果正常结果2.溢出的检测方法[x]补0. 1 0 1 1+[y]补0. 1 0 0 1[x+y]补1. 0 1 0 0[x]补1. 0 0 1 1+[y]补1. 0 1 0 1[x+y]补0. 1 0 0 0溢出逻辑表达式为:V=S1S2Sc+ S1S2Sc(1)单符号位检测方法1FAVz0y0x0判断电路判断电路设两数符号位分别为S1、S2和数符号位S C(2)单符号位检测方法20 .1 0 1 0 1+0 .0 1 0 0 00 .1 1 1 0 10 .1 0 1 0 1+0 .1 1 0 0 0.0 1 1 0 11 1 .1 0 1 0 1+1 .1 1 0 0 01 .0 1 1 0 11 1 .0 0 1 0 1+1 .1 1 0 0 0.1 1 1 0 101符号位进位C f ,最高位进位C nC f = 0,C n = 0C f = 1,C n = 1C f = 0,C n = 1C f = 1,C n = 0FA FA z 1z 0V c 1c 0y 1x 1y 0x 0判断电路从上面例中看到:当最高有效位有进位而符号位无进位时,产生溢出;当最高有效位无进位而符号位有进位时,产生溢出。
(简单地说是正数相加为负数或负数相加为正数则产生溢出)故溢出逻辑表达式为:V =C f ⊕Cn其中C f 为符号位产生的进位,C n 为最高有效位产生的进位。
此逻辑表达式也可用异或门实现。
一个符号位只能表示正、负两种情况,当产生溢出时,符号位的含义就会发生混乱。
如果将符号位扩充为两位(Sf1、Sf2),其所能表示的信息量将随之扩大,既能判别是否溢出,又能指出结果的符号。
(3)双符号位法双符号位法也称为“变形补码”或“模4补码”。
定点小数变形补码定义:[x]补=x 0≤x<14+x -1≤x<0(mod 4)字长n+2定点整数,变形补码定义:(mod 2 )x 0≤x<22 + x -2 ≤x<0[x]补=nnn+2n+2• 任何小于1的正数:两个符号位都是“0”,即00.x1x2...xn;• 任何大于-1的负数:两个符号位都是“1”,即11.x1x2…xn两数变形补码之和等于两数和的变形补码,要求:• 两个符号位都看做数码一样参加运算;• 两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。
模4补码加法公式:[x]补+[ y]补=[x+y]补(mod 4)采用变形补码后数的表示:双符号数溢出检测0 0 .1 0 1 0 1 +0 0 .0 1 0 0 00 0 .1 1 1 0 10 0 .1 0 1 0 1 +0 0 .1 1 0 0 0.0 1 1 0 10 11 1 .1 0 1 0 1 +1 1 .1 1 0 0 01 1 .0 1 1 0 1 11 1 .0 0 1 0 1 +1 1 .1 1 0 0 0.1 1 1 0 11 01非正常符号位,溢出符号位进位舍去,正常结果正常结果非正常符号位,溢出S f 1S f 2 =00 结果为正数,无溢出01 结果正溢10 结果负溢11 结果为负数,无溢出即:结果的两个符号位的代码不一致时,表示溢出;两个符号位的代码一致时,表示没有溢出。