第3章 运算方法及运算部件_第1页
第3章 运算方法及运算部件_第2页
第3章 运算方法及运算部件_第3页
第3章 运算方法及运算部件_第4页
第3章 运算方法及运算部件_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成与结构 延安大学计算机学院第3章 运算方法和运算部件3.1 数据的表示方法和转换数据的表示方法和转换 3.2 带符号的二进制数据在计算机中带符号的二进制数据在计算机中 的表示方法及加减法运算的表示方法及加减法运算3.3 二进制乘法运算二进制乘法运算3.4 二进制除法运算二进制除法运算3.5 浮点数的运算方法浮点数的运算方法3.6 运算部件运算部件3.7 数据校验码数据校验码计算机组成与结构 延安大学计算机学院1 进制之间的相互转换是最基本的,应当熟练掌进制之间的相互转换是最基本的,应当熟练掌握;握;2 定点数的原码、补码和反码表示;定点数的原码、补码和反码表示;3 浮点数的规格化概念

2、,真值浮点数的规格化概念,真值浮点数表示形浮点数表示形式;式;4 定点数的加减乘除运算方法(其中补码数运算定点数的加减乘除运算方法(其中补码数运算最重要)最重要);5 奇偶校验码的校验原理及校验位形成方法;奇偶校验码的校验原理及校验位形成方法;本章重点本章重点计算机组成与结构 延安大学计算机学院n所有数据都是用二进制数位形式来表示的。所有数据都是用二进制数位形式来表示的。n在计算机内部数以编码形式即机器数来表示的。在计算机内部数以编码形式即机器数来表示的。n机器运算用电子设备实现,电子设备规模有限,机器运算用电子设备实现,电子设备规模有限,因而机器运算要解决运算方法、数据表示格式及因而机器运算

3、要解决运算方法、数据表示格式及数据长度的选取、规定等问题。数据长度的选取、规定等问题。n用计算机进行运算时,都要把复杂的运算,简化用计算机进行运算时,都要把复杂的运算,简化为一系列最基本的运算才能实现。计算机可以实为一系列最基本的运算才能实现。计算机可以实现的基本运算有算术运算现的基本运算有算术运算(加、减、乘、除等加、减、乘、除等)和和逻辑运算逻辑运算(与、或、非、异或等与、或、非、异或等)。计算机进行算术运算的特点计算机进行算术运算的特点计算机组成与结构 延安大学计算机学院n二进制只有两个数码二进制只有两个数码“0”0”和和“1”1”,易于用物理,易于用物理器件表示。这些物理状态都是不同的

4、质的变化,器件表示。这些物理状态都是不同的质的变化,形象鲜明、易于区别,并且数的存储、传送和处形象鲜明、易于区别,并且数的存储、传送和处理可靠性高。理可靠性高。n运算规则简单,操作实现容易。运算规则简单,操作实现容易。n二进制加、减、乘、除运算,可以归结为加、减、二进制加、减、乘、除运算,可以归结为加、减、移位三种操作。移位三种操作。n理论和实践证明,采用理论和实践证明,采用R= e =2.71828R= e =2.71828进制时,存进制时,存储设备最省,取储设备最省,取3 3比取比取2 2更节省设备,但二进制比更节省设备,但二进制比三进制易于表示三进制易于表示 。n二进制中的二进制中的“1

5、”1”和和“0”0”与逻辑命题中的与逻辑命题中的“真真”、“假假”相对应,为计算机实现逻辑运算和程序中相对应,为计算机实现逻辑运算和程序中的逻辑判断创造了良好条件。的逻辑判断创造了良好条件。计算机内部采用的二进制表示方式的原因计算机内部采用的二进制表示方式的原因 计算机组成与结构 延安大学计算机学院n二进制二进制只有只有0 和和1 两个数字符号,两个数字符号,“逢二进一,借一当二逢二进一,借一当二”。 1 1 0 1 . 0 1=l23 + l22 + 0 + l20 + 0 + l2 -2 23 22 21 20 2-1 2-2 n八进制与十六进制(用于阅读和书写)八进制与十六进制(用于阅读

6、和书写)八进制:八进制: 数码有八个:数码有八个:0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 十六进制:十六进制: 数码有十六个:数码有十六个:0 , 1 , ,9 , A , B , C , D , E , F3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n几个概念几个概念权值权值/位权:位权:某个固定位置上的计数单位。以基某个固定位置上的计数单位。以基数为底的指数,指数的幂是数位的序号。数为底的指数,指数的幂是数位的序号。 1 1 0 1 . 0 1 23 22 21 20 2 -1 2-2 权值权值基数:基数:在某种数制中,允许使用的数字符号的在某种数制

7、中,允许使用的数字符号的个数,称为这种数制的基数或基个数,称为这种数制的基数或基 ,用,用R表示。表示。如如10进制进制 :用:用09 十个数码表示,基数为十个数码表示,基数为10二进制数的基数为二进制数的基数为2 ,八进制数的基数为,八进制数的基数为83.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n进制数的表示方式进制数的表示方式用下标加以标注。用下标加以标注。 例如:例如:( 1010 ) 2 , ( 1010 ) 10用后缀字母表示不同的进制。用后缀字母表示不同的进制。B 二进制二进制 Q 八进制八进制H 十六进制十六进制 D 十进制十进制 例如:例如:375Q , A

8、l 7H , 1 01B3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n计算机常用各种进制数的表示计算机常用各种进制数的表示3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同数制间的数据转换二进制数转换为八进制和十六进制数二进制数转换为八进制和十六进制数整数部分整数部分:从右向左按三:从右向左按三(四四)位分组,不足左补零位分组,不足左补零小数部分小数部分:从左向右按三:从左向右按三(四四)位分组,不足右补零位分组,不足右补零3.1 数据的表示方法和转换例例:(001 011 010 110.101 011 100) 2= (1326.

9、534.) 8 1 3 2 6 5 3 4例例:(0101 1101.0101 1010) 2= (5D.5A) 16 5 D 5 A计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同数制间的数据转换八八(十六十六)进制转化成二进制进制转化成二进制n一位八进制数对应三位二进制数一位八进制数对应三位二进制数n一位十六进制数对应四位二进制数一位十六进制数对应四位二进制数n去掉整数部分最高位去掉整数部分最高位0和小数部分最低位和小数部分最低位0例:例:(147.63)8= (001 100 111.110 011)2例:例:(F5A.6C) 16= (1111 0101 1010 011

10、0.0110 1100) 23.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同数制间的数据转换R进制转换成十进制的方法:进制转换成十进制的方法:加权求和法加权求和法 规则:规则:按权展开后相加。按权展开后相加。即先写成多项式即先写成多项式,然后计算十进制结果然后计算十进制结果 N = dn-1dn-2d1d0d-1d-2 d-m = dn-1 Rn-1 + dn-2 Rn-2 + d1 R1 + d0 R0 + d-1 R-1 + d-2 R-2 + d-m R-m3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同

11、数制间的数据转换例如例如:写出写出(1101.01)2,(237)8,(10D)16的十进的十进制数制数(1101.01)2=123+122+021+120+ 02-1+12-2 =8+4+1+0.25=13.25(237)8=282+381+780 =128+24+7=159(10D)16=1162+13160=256+13=2693.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同数制间的数据转换十进制转换成二进制方法十进制转换成二进制方法 一般分为两个步骤:一般分为两个步骤:n整数部分的转换整数部分的转换除除2取余法取余法(基数除法)(基数除法)n小

12、数部分的转换小数部分的转换乘乘2取整法取整法(基数乘法)(基数乘法)3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同数制间的数据转换除基取余法除基取余法: 把给定的除以基数,取余数作为最低位的把给定的除以基数,取余数作为最低位的系数系数,然后继续将商部分除以然后继续将商部分除以 基数,余数作为基数,余数作为次低位系数,重复操作直至商为次低位系数,重复操作直至商为 0 。乘基取整法:乘基取整法: 把给定的十进制小数乘以把给定的十进制小数乘以2 2,取其整数作为,取其整数作为二进制小数的第一位二进制小数的第一位, ,然后取小数部分继续乘然后取小数部分继续乘

13、以以2 2,将所的整数部分作为第二位小数,重复,将所的整数部分作为第二位小数,重复操作直至得到所需要的二进制小数。操作直至得到所需要的二进制小数。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院例例3.7 将将(105)10转换成二进制。转换成二进制。2 105 余数余数结果结果 2 521最低位最低位 2 260 2 130 2 61 2 30 2 11 01最高位最高位 得出:得出:(105)10=(1101001)2逆序逆序计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同数制间的数据转换十进制小数部分转换二进制十进制小数部分转换二进制乘乘2 取整法取整法:例

14、如例如: :将将(0.8125) (0.8125) 10 10 转换成二进制小数转换成二进制小数. . 整数部分整数部分2 2 0.8125=1.625 0.8125=1.625 1 12 2 0.625=1.25 0.625=1.25 1 12 2 0.25=0.5 0.25=0.5 0 02 2 0.5=1 0.5=1 1 1(0.8125)(0.8125)10 10 =(0.1101)=(0.1101)2 23.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n不同数制间的数据转换不同数制间的数据转换十进制小数部分转换二进制十进制小数部分转换二进制乘乘2 取整法取整法:例如例

15、如: :将将(0.2) (0.2) 10 10 转换成二进制小数转换成二进制小数. . 整数部分整数部分0.2 0.2 2 = 0.42 = 0.4 0 00.4 0.4 2 = 0.8 2 = 0.8 0 00.8 0.8 2 = 1.6 2 = 1.6 1 10.6 0.6 2 = 1.2 2 = 1.2 1 10.2 0.2 2 = 0.4 2 = 0.4 0 00.4 0.4 2 = 0.8 2 = 0.8 0 00.8 0.8 2 = 1.6 2 = 1.6 1 10.6 0.6 2 = 1.2 2 = 1.2 1 1 (0.2) 10 10 = 0.001100110011. 2

16、23.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n数据符号的表示数据符号的表示真值真值:正、负正、负号号加某进制数绝对值的形式称为真加某进制数绝对值的形式称为真值。如二进制真值:值。如二进制真值:X= +1011 y= -1011机器数:机器数:符号数码化符号数码化的数称为机器数,的数称为机器数,0表示表示正数、正数、1表示负数表示负数如如 : X= 01011 Y= 110113.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的编码与运算十进制数的编码与运算 人们习惯于用十进制表示数据,而计算机则采人们习惯于用十进制表示数据,而计算机则采用二进制表示

17、和处理数据。所以向计算机输入数据用二进制表示和处理数据。所以向计算机输入数据时,需要进行十进制数到二进制数的转换;输出数时,需要进行十进制数到二进制数的转换;输出数据时,则要进行二进制数到十进制数的转换处理。据时,则要进行二进制数到十进制数的转换处理。在数据量较小的情况下,这样的转换对机器运行效在数据量较小的情况下,这样的转换对机器运行效率的影响不是很大。但是,在某些应用领域,运算率的影响不是很大。但是,在某些应用领域,运算简单而数据量很大,进行这些转换所占用的时间比简单而数据量很大,进行这些转换所占用的时间比较大。所以为了提高机器的运行效率,计算机可以较大。所以为了提高机器的运行效率,计算机

18、可以用十进制来表示和处理数据。用十进制来表示和处理数据。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的编码与运算十进制数的编码与运算 一个十进制数位是用若干位二进制编码表示。一个十进制数位是用若干位二进制编码表示。用四位二进制代码的不同组合来表示一个十进制数用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为二码的编码方法,称为二十进制编码,也称十进制编码,也称BCD码码(Binary Coded Decimal)。)。 常用这种编码作为常用这种编码作为十进制数转换成二进制数的中间过渡。即先将一个十进制数转换成二进制数的中间过渡。即先将一个十进制数用十进

19、制数用BCD码来表示,再把它们送入机器,码来表示,再把它们送入机器, 计算机通过标准子程序使其转换成纯二进制数。计算机通过标准子程序使其转换成纯二进制数。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的编码与运算十进制数的编码与运算 二二十进制的编码都采用压缩的十进制串的方法,十进制的编码都采用压缩的十进制串的方法,即四个二进制位的值来表示一个十进制数码。即四个二进制位的值来表示一个十进制数码。各种编码的区别在于选用哪十个状态。选择的原各种编码的区别在于选用哪十个状态。选择的原则是:要考虑输入和输出时转换方便;内部运算则是:要考虑输入和输出时转换方便;内部运算时,加

20、、减运算规则要尽量简单;在特定场合,时,加、减运算规则要尽量简单;在特定场合,可能有其它一些要求。可能有其它一些要求。从每个二进制位是否有确定的位权区分,可把从每个二进制位是否有确定的位权区分,可把二二十进制编码分为有权码和无权码。十进制编码分为有权码和无权码。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的编码与运算十进制数的编码与运算 有权码:表示一位十进制数的二进制码的每一位有权码:表示一位十进制数的二进制码的每一位有确定的权。有确定的权。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的编码与运算十进制数的编码与运算 对于有权码,将

21、每位的数码与相应的位权相乘,再求和,对于有权码,将每位的数码与相应的位权相乘,再求和,就可以得到它所代表的十进制数值。就可以得到它所代表的十进制数值。8421码实现加、减运算时的修正规则:码实现加、减运算时的修正规则:(1)两个)两个8421码表示的数相加之和等于或小于码表示的数相加之和等于或小于1001,即,即十进制的十进制的9时,不需要修正。时,不需要修正。(2)两个)两个8421码相加结果大于码相加结果大于1001(即十进制(即十进制9)时,则)时,则应该进行应该进行“加加6修正修正”,使它向高一组产生进位。,使它向高一组产生进位。3.1 数据的表示方法和转换计算机组成与结构 延安大学计

22、算机学院n十进制数的编码与运算十进制数的编码与运算 对于对于2421码、码、5211码、码、4311码,任何两个十进码,任何两个十进制数位,采用这四种编码的任何一种编码,它们相制数位,采用这四种编码的任何一种编码,它们相加其和等于加其和等于9时,即它们的二进制编码位互为反码,时,即它们的二进制编码位互为反码,则其结果的四个二进制位一定是则其结果的四个二进制位一定是1111,能较好地体,能较好地体现十进制的按现十进制的按9 取补与二进制的按取补与二进制的按1取补的对应关取补的对应关系,这对减法很有用。系,这对减法很有用。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的

23、编码与运算十进制数的编码与运算 无权码:表示一位十进制数的二进制码的每一位无权码:表示一位十进制数的二进制码的每一位没有确定的权。没有确定的权。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的编码与运算十进制数的编码与运算 无权码中,用的较多的是余无权码中,用的较多的是余3码码(Excess-3 code)和格雷码和格雷码(Gray code),格雷码又称循环码。,格雷码又称循环码。余余3码码(1)余)余3码是在码是在8421码的基础上,把每个代码都加上码的基础上,把每个代码都加上0011而形成的。而形成的。(2)具体运算规则如下:)具体运算规则如下: 两个余两个余

24、3码相加,如果结果不产生进位,则从所得和码相加,如果结果不产生进位,则从所得和值去减值去减0011;如果结果有进位,则其进位送入高位,;如果结果有进位,则其进位送入高位, 本本位加上位加上0011。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n十进制数的编码与运算十进制数的编码与运算 格雷码格雷码(1)格雷码的编码规则是使相邻的两个代码,只)格雷码的编码规则是使相邻的两个代码,只有一个二进制位的状态不同,其余三个二进制位有一个二进制位的状态不同,其余三个二进制位必须有相同状态。必须有相同状态。(2)优点:从一个编码变到下一个相邻编码时,)优点:从一个编码变到下一个相邻编码时

25、,只有一个位的状态发生变化,有利于保证代码变只有一个位的状态发生变化,有利于保证代码变换的连续性。在模拟换的连续性。在模拟/数字转换和产生节拍电位数字转换和产生节拍电位等应用场合特别有用。等应用场合特别有用。3.1 数据的表示方法和转换计算机组成与结构 延安大学计算机学院n数字串在机内的表示与存储数字串在机内的表示与存储 非压缩的十进制数串表示法:一个字节存放一个非压缩的十进制数串表示法:一个字节存放一个十进制数或符号的十进制数或符号的ASCII-7码;码;压缩的十进制数串表示法:一个字节存放两位压缩的十进制数串表示法:一个字节存放两位BCD码表示的十进制数码表示的十进制数。3.1 数据的表示

26、方法和转换计算机组成与结构 延安大学计算机学院n一个数的表示方法,是它们在计算机中的组成格式一个数的表示方法,是它们在计算机中的组成格式和编码规则。和编码规则。n当一个数送入计算机进行运算处理时,首先将其转当一个数送入计算机进行运算处理时,首先将其转换为二进制数,同时还要解决以下问题:换为二进制数,同时还要解决以下问题: 1怎样表示数的符号 2怎样确定小数点的位置 3确定编码方案3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n机器数机器数 计算机中表示的计算机中表示的带符号带符号的二进制数称为的二进制数称为“机器机器数数”。机器数有四种表示方式:原码、补码、反码和移机

27、器数有四种表示方式:原码、补码、反码和移码。码。3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n数的定点表示数的定点表示定点数定点数:操作数数据格式中小数点的位置是固定的。:操作数数据格式中小数点的位置是固定的。计算机中的定点数只采用纯整数或者纯小数表示。计算机中的定点数只采用纯整数或者纯小数表示。3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算原码表示法:最高位为符号位(原码表示法:最高位为符号位(0正;正;1负),数值部负),数值部分与真值的绝对值相同。分与真值的绝对值相同。

28、例:例: 真值真值(X) 原码原码(X原原) 0.0010 0.0010 -0.1010 1.1010 0.0000 0.0000 -0.0000 1.0000对于纯小数,原码定义为:对于纯小数,原码定义为:3.2 机器数的表示方法及加减法运算10101XXXXX原计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算原码表示数的范围(以原码表示数的范围(以n=5为例)为例)3.2 机器数的表示方法及加减法运算正数有正数有2n-1-1个个 ;负数有;负数有2n-1-1个;零有个;零有2 个个计算机组成与结构 延安大学计算机学院n原码、补码、反码和

29、及其加减法运算原码、补码、反码和及其加减法运算原码的特点原码的特点: 简单、易懂(实质是表示数的符号和绝对值)简单、易懂(实质是表示数的符号和绝对值)乘除法规则较简单乘除法规则较简单加减法实现比较复杂(需要对符号位进行判断)加减法实现比较复杂(需要对符号位进行判断)3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算补码表示法:最高位为符号位(补码表示法:最高位为符号位(0正;正;1负),其定义负),其定义如下:如下:3.2 机器数的表示方法及加减法运算)(补2mod10201XXXXXX补补是小数是小数X的

30、补码,的补码,X为任意小数,为任意小数,2为模数。为模数。计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算补码的优点:将减法运算转换成加法运算,这样在用逻补码的优点:将减法运算转换成加法运算,这样在用逻辑电路实现加减法运算时,可以只考虑用加法电路。辑电路实现加减法运算时,可以只考虑用加法电路。 X补-Y补= X补+-Y补例如:例如: X=(11)10=(1011)2 Y=(5)10=(0101)2 已知字长已知字长n=5位位 X补补-Y补补 =X补补+-Y补补 =01011+11011=100110=00110=(6)10 注:注: 最高最

31、高1位已经超过字长故应丢掉位已经超过字长故应丢掉3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算3.2 机器数的表示方法及加减法运算实现加法运算的逻辑示例实现加法运算的逻辑示例 计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算反码表示法反码表示法 反码表示法与补码表示法有许多类似之处,反码表示法与补码表示法有许多类似之处,对于正数,数值部分与真值形式相同;对于负数,对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反。将真值的数值部分按

32、位取反。3.2 机器数的表示方法及加减法运算)22(mod10)22 (01nnXXXXX反计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算反码运算反码运算 例例3.20 X=+0.1011(n=4),则则X反反=0.1011 X=-0.1011(n=4),则则X反反=2-2-4+(-0.1011)=1.0100 反码运算是以反码运算是以2-2-n为模,所以,当最高位有进位而丢掉进位为模,所以,当最高位有进位而丢掉进位(即即2)时,要在最低位时,要在最低位+1。 例例3.21 X=0.1011, Y=-0.0100,则有:,则有:X反反=0

33、.1011, Y反反=1.1011X+Y反反 =X反反+Y反反 = 0.1011+1.1011 =10.0110 =0.0111 mod(2-2-4)其中,最高位其中,最高位1丢掉,并要在最低位加丢掉,并要在最低位加1。3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n原码、补码、反码和及其加减法运算原码、补码、反码和及其加减法运算反码的特点反码的特点n0的反码不唯一的反码不唯一 +0反反= 0.000 - 0反反= 2 - 2-n - 0.000 = 1.11 (mod 2-2-n)n反码运算不方便,一般很少用于作算术运算。反码运算不方便,一般很少用于作算术运算。3.

34、2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n整数的表示形式整数的表示形式3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理当运算结果超出机器数所能表示的范围时,称为当运算结果超出机器数所能表示的范围时,称为溢出溢出。两个异号数相加或两个同号数相减,其结果是不会溢出两个异号数相加或两个同号数相减,其结果是不会溢出的;的;当两个同号数相加或者两个异号数相减时,才有可能发当两个同号数相加或者两个异号数相减时,才有可能发生溢出的情况;生溢出的情况;一旦溢出,运算结果就不正确了,必须检查溢出情况一旦溢出,运算结果就

35、不正确了,必须检查溢出情况3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理例:例:0.1011, 0.1001,求。,求。 解解:补补0.1011 , 补补0.1001 补补0.1011 补补0.1001 补补1.0100 两正数相加,结果为负,显然错误。两正数相加,结果为负,显然错误。运算中出现了运算中出现了“上溢上溢”3.2 机器数的表示方法及加减法运算有进位有进位无进位无进位计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理例:例:0.1011, 0.0010,求。,求。 解解:补补0.1011

36、 , 补补0.0010 补补0.1011 补补0.0010 补补0.1101 两正数相加,结果无溢出两正数相加,结果无溢出3.2 机器数的表示方法及加减法运算无进位无进位无进位无进位计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理例:例:-0.1101, -0.1011,求。,求。 解解:补补1.0011 , 补补1.0101 补补 1.0011 补补 1.0101 补补0.1000 两负数相加,结果为正,显然错误。两负数相加,结果为正,显然错误。运算中出现了运算中出现了“下溢下溢”3.2 机器数的表示方法及加减法运算无进位无进位有进位有进位计算机组成与结构 延安

37、大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理例:例:-0.1101, -0.0010,求。,求。 解解:补补1.0011 , 补补 1.1110 补补1.0011 补补1.1110 补补1.0001 两负数相加,结果无溢出两负数相加,结果无溢出3.2 机器数的表示方法及加减法运算有进位有进位有进位有进位计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理产生产生“溢出溢出”的原因的原因: 分析可知,当最高有效数值位的运算分析可知,当最高有效数值位的运算进位进位与符号位的与符号位的运算运算进位进位不一致时,将产生运算不一致时,将产生运算“溢出溢出”进一步分析

38、进一步分析 当最高有效位产生进位而符号位无进位时当最高有效位产生进位而符号位无进位时, ,产生产生上溢上溢; 当最高有效位无进位而符号位有进位时当最高有效位无进位而符号位有进位时, ,产生产生下溢下溢。3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理进位溢出判断法进位溢出判断法 S C 两单符号位的补码进行加减运算时,若最高数值位向两单符号位的补码进行加减运算时,若最高数值位向符号位的进位值符号位的进位值C与符号位产生的进位输出值与符号位产生的进位输出值S相同时则相同时则无溢出,否则溢出。无溢出,否则溢出。 X补= 1. 1 0

39、 1 X补= 1.1 1 0 + Y补= 1. 0 0 1 + Y补= 0.1 0 0 X+Y补=10.1 1 0 X+Y补= 10.0 1 0 C=0,S=1,有溢出 C=1,S=1,无溢出 3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理双符号位溢出判断法双符号位溢出判断法 fS1 fS2 双符号含义双符号含义:00表示运算结果为正数;表示运算结果为正数;01表示运算结果正向溢出;表示运算结果正向溢出;10表示运算结果负向溢出;表示运算结果负向溢出;11表示运算结果为负数。表示运算结果为负数。 OVR = fs1 fs2 =

40、 1 有溢出有溢出OVR = fs1 fs2 = 0 无溢出无溢出第一位符号位为运算结果的真正符号位。第一位符号位为运算结果的真正符号位。3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理双符号位溢出判断法双符号位溢出判断法 fS1 fS2例:例:X=0.1001,Y=0.0101,求,求X+Y解解: X补补= 00.1 0 0 1 +Y补补= 00.0 1 0 1 X+Y补补= 00.1 1 1 0两个符号位相同,运算结果无溢出两个符号位相同,运算结果无溢出X+Y=+0.11103.2 机器数的表示方法及加减法运算计算机组成与结

41、构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理双符号位溢出判断法双符号位溢出判断法 fS1 fS2例:例:X= - 0.1001,Y= - 0.0101,求,求 X+Y=?3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理双符号位溢出判断法双符号位溢出判断法 fS1 fS2例:例:X= 0.1011,Y= 0.0111,求,求 X+Y=? 3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n加减法运算的溢出处理加减法运算的溢出处理双符号位溢出判断法双符号位溢出判断法 fS1 fS2例:例:X

42、= - 0.1011,Y= 0.0111,求,求 X-Y=? 3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n定点数和浮点数定点数和浮点数定点数定点数(1). 定点整数定点整数小数点位置固定在数的最低位之后小数点位置固定在数的最低位之后 如:如: Dn-1 Dn-2 D1 D0 .范围:范围: 2n-1 -1 -2n-1 (采用字长采用字长n=16位补码时其值为位补码时其值为32767 -32768)(2). 定点小数定点小数小数点位置固定在数的符号位之后、数小数点位置固定在数的符号位之后、数值最高位之前。值最高位之前。 如:如:D0. D-1 D-(n-2) D-(

43、n-1)范围:范围:1 - 2-(n-1) -1 (采用字长采用字长n=16位时其值为位时其值为32767/32768 -1)其中其中n表示字长多少位表示字长多少位 3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n定点数和浮点数定点数和浮点数浮点数浮点数浮点数是指小数点位置可浮动的数据,通常表示为:浮点数是指小数点位置可浮动的数据,通常表示为: N = M RE M-尾数尾数(Mantissa):表示有效数字的带符号纯小数常用原码或补码表示;表示有效数字的带符号纯小数常用原码或补码表示;E-阶码阶码(Exponent):表示小数点位置的带符号整数常用移码或补码表示;表

44、示小数点位置的带符号整数常用移码或补码表示;R-基数基数(radix):通常取值通常取值2,也可取,也可取8,16等。等。3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n定点数和浮点数定点数和浮点数浮点数浮点数浮点数是指小数点位置可浮动的数据,通常表示为:浮点数是指小数点位置可浮动的数据,通常表示为: N = M RE M-尾数尾数(Mantissa)E-阶码阶码(Exponent)R-基数基数(radix):通常取值:通常取值2,也可取,也可取8,16等等浮点数的机内表示:浮点数的机内表示:3.2 机器数的表示方法及加减法运算MS E M 计算机组成与结构 延安大学

45、计算机学院n定点数和浮点数定点数和浮点数浮点数浮点数 移码:在真值移码:在真值X上加一个常数(偏置值),使数据的正上加一个常数(偏置值),使数据的正负符号数字化的一种编码方法。负符号数字化的一种编码方法。(相当于(相当于X在数轴上向正方向平移了一段距离,通常用于表在数轴上向正方向平移了一段距离,通常用于表示整数)示整数) 对于对于n位定点整数,偏置值常取位定点整数,偏置值常取2n-1,此时其编码规则较,此时其编码规则较简单。简单。 移码的编码规则:移码的编码规则: X移移与与X补补符号位(最高位)相反,其它各位都相同。符号位(最高位)相反,其它各位都相同。3.2 机器数的表示方法及加减法运算计

46、算机组成与结构 延安大学计算机学院n定点数和浮点数定点数和浮点数浮点数浮点数移码的编码规则:移码的编码规则:X移移与与X补补符号位符号位(最高位最高位)相反,其它各位都相同。相反,其它各位都相同。例例1: X = 1011101X移移 = 27+X = 10000000+01011101 = 11011101 X补补 = 01011101例例2: Y = -1011101Y移移 = 27+Y = 10000000-01011101=00100011 Y补补 = 10100011用移码表示阶码的优点:用移码表示阶码的优点:(1) 移码可视为无符号数,全为移码可视为无符号数,全为0时对应的真值最小

47、,全为时对应的真值最小,全为1时对应的真值最大,有时对应的真值最大,有助于两个浮点数进行阶码的大小比较;助于两个浮点数进行阶码的大小比较;(2) 简化机器中的判零电路。当阶码全为简化机器中的判零电路。当阶码全为0,尾数也全为,尾数也全为0时,表示机器零。时,表示机器零。3.2 机器数的表示方法及加减法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定

48、点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定

49、点数一位乘法定点原码一位乘法定点原码一位乘法运算规则:运算规则: (1)在机器内一次加法操作只能求出两数之和,因此每求得一个相加)在机器内一次加法操作只能求出两数之和,因此每求得一个相加数时,就得与上次部分积相加。数时,就得与上次部分积相加。 (2)人工计算时,相加数逐次向左偏移一位,由于最后的乘积位数是)人工计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(或被乘数)的两倍。由于在求本次部分积时,前一次部分积的最乘数(或被乘数)的两倍。由于在求本次部分积时,前一次部分积的最低位,不再参与运算,因此可将其右移一位。相加数可直送而不必偏移,低位,不再参与运算,因此可将其右移一位。相加数可

50、直送而不必偏移,于是用于是用N位加法器就可实现两个位加法器就可实现两个N位数相乘。位数相乘。 (3)部分积右移时乘数寄存器同时右移一位,这样可以用乘数寄存器)部分积右移时乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可接收部分积右移出来的一位,因此,完成乘法运算后,接收部分积右移出来的一位,因此,完成乘法运算后,A寄存器中保存寄存器中保存乘积的高位部分,乘数寄存器乘积的高位部分,乘数寄存器C中保存乘积的低位部分。中保存乘积的低位部分。3.3 二进制乘法运算计算机组成与结构 延

51、安大学计算机学院n定点数一位乘法定点数一位乘法定点原码一位乘法定点原码一位乘法3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定点补码一位乘法补码与真值的转换关系补码与真值的转换关系 设X补=X0.X1X2Xn,当真值X0时,X0=0,X补=0.X1X2Xn= Xi2-i=X当真值X0时,X0=1, X补=1.X1X2Xn=2+X X=X补-2=1.X1X2Xn -2= -1+ 0.X1X2Xn = -1+ Xi2-i对X为正负数都适合的公式如下: X= -X0+ Xi2-i = -X0+0.X1X2Xn3.3 二进制乘法运算ni0ni0

52、ni0计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定点补码一位乘法补码与真值的转换关系补码与真值的转换关系 证明:当证明:当X为正时,为正时,X补补 = 2X0 +X=X 当当X为负时,为负时,X补补 = 2+X=2X0 +X (根据定义)(根据定义)由此可得:由此可得: X =X补补 - 2X0 = X0 .X1X2Xn- 2X0 =- X0+ 0 .X1X2Xn3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定点补码一位乘法3.3 二进制乘法运算补码的右移补码的右移(连同符号位将数右移(连同符号位

53、将数右移1位,保持符号位不变,相当于位,保持符号位不变,相当于乘乘1/2 ) 设设XX补补=X=X0 0.X.X1 1X X2 2XnXn,据真值与补码得关系式式,据真值与补码得关系式式 X= - XX= - X0 0+ X+ Xi i22-i-i = -X = -X0 0+ X+ X0 0+ X+ Xi i22-i-i= -X= -X0 0+ + (X X0 0+ X+ Xi i22- -i i) = -X= -X0 0+ X+ Xi i22- -(i+1i+1)= -X= -X0 0+0.X+0.X0 0X X1 1X X2 2Xn Xn 按照补码和真值的关系,所以按照补码和真值的关系,所

54、以 X X补补 = X= X0 0.X.X0 0X X1 1X X2 2XnXn 同理:同理: X X补补 = X= X0 0.X.X0 0X X0 0X X1 1X X2 2XnXn X X补补 = X= X0 0.X.X0 0X X0 0X X0 0X X1 1X X2 2XnXnni 1ni 1ni 1212121212121ni 0214181计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定点补码一位乘法设被乘数设被乘数X补补=X0.X1X2Xn, 乘数乘数Y补补=Y0.Y1Y2Yn,则有:则有: XY补补=X补补(- Y0+ Yi2-i) 证明见教

55、材证明见教材3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定点补码一位乘法校正法的思想校正法的思想(乘数的符号位不参与运算乘数的符号位不参与运算) 先将任意两个补码先将任意两个补码X补补、Y补补看作是一般的二进制数,看作是一般的二进制数,仍按原码运算规则求得仍按原码运算规则求得X补补Y补补,然后对其结果加以校正,然后对其结果加以校正,而获得而获得XY补补之值。之值。 当乘数当乘数Y为正时,与原码乘法相似,只是在部分积相加、为正时,与原码乘法相似,只是在部分积相加、右移操作时,右移操作时, 按补码性质进行;当乘数为负时,先不考虑按补码性质

56、进行;当乘数为负时,先不考虑乘数的符号,将乘数补码的数值部分与被乘数相乘;最后进乘数的符号,将乘数补码的数值部分与被乘数相乘;最后进行校正操作,即行校正操作,即加上加上-X补补。 例子:见教材例子:见教材 (采用双符号位采用双符号位 模模4补码补码)3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定点补码一位乘法布斯公式:布斯公式:布斯夫妇提出,又称Booth乘法。是对校正法的改进,不论乘数为正为负,符号位都参加运算,其运算规则统一。3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定

57、点补码一位乘法PP0 0 补补= 0= 0PP1 1 补补=P=P0 0 补补+(Y+(Yn+1n+1-Y-Yn n)X)X补补22-1 -1 Y Yn+1n+1= 0= 0PP2 2 补补=P=P1 1 补补+(Y+(Yn n-Y-Yn-1n-1)X)X补补22-1 -1 . .PPi i 补补=P=Pi-1i-1 补补+(Y+(Yn+i+2n+i+2-Y-Yn-i+1n-i+1)X)X补补22-1 -1 .PPn n 补补=P=Pn-1n-1 补补+(Y+(Y2 2-Y-Y1 1)X)X补补22-1 -1 PPn+1n+1 补补=P=Pn n 补补+(Y+(Y1 1-Y-Y0 0)X)X补

58、补=XY=XY补补 每一步在上次部分积的基础上加每一步在上次部分积的基础上加( Y( Yi+1i+1-Y-Yi i)X)X补补,然后再右移,然后再右移1 1位,位,得到新的部分积,最后一次不移位,得到得到新的部分积,最后一次不移位,得到XYXY补补。3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数一位乘法定点数一位乘法定点补码一位乘法定点补码一位乘法 假设X、Y都是用补码形式表示的机器数,X补和Y 补= YS.Y1Y2Yn,都是任意符号表示的数。求新的部分积,取决于两个比较位的数位状态,即Yi+1Yi的状态。布斯乘法规则布斯乘法规则: (1)设置附加位Yn+1=0,部分积初值

59、P0 补=0。 (2)当n0时,判YnYn+1,若YnYn+1=00或11,即相邻位相同时,上次部分积右移一位,直接得部分积。 若YnYn+1=01,上次部分积加X补,右移一位得新部分积 若YnYn+1=10,上次部分积加-X补,右移一位得新部分积 (3)当n=0时,判YnYn+1 (对应于Y0Y1),运算规则同(2)只是不移位。即在运算的最后一步,乘积不再右移。3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数二位乘法定点数二位乘法原码二位乘原码二位乘n乘数和被乘数都用原码表示乘数和被乘数都用原码表示n两位乘数有四种可能组合,对应于以下操作:两位乘数有四种可能组合,对应于以下

60、操作:00相当于相当于0X。部分积。部分积Pi右移右移2位;位;01相当于相当于1X。部分积。部分积Pi+X,右移,右移2位;位;10相当于相当于2X。部分积。部分积Pi+2X,右移,右移2位;位;11相当于相当于3X。部分积。部分积Pi+3X,右移,右移2位。位。3.3 二进制乘法运算计算机组成与结构 延安大学计算机学院n定点数二位乘法定点数二位乘法原码二位乘原码二位乘 与原码一位乘法比较,多出了与原码一位乘法比较,多出了2X和和3X两种情况:两种情况: 1、把把X左移左移1位即得位即得2X,在机器内通常采用向左斜送,在机器内通常采用向左斜送1位来实现。位来实现。 2、+3X一般不能一次完成

温馨提示

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

评论

0/150

提交评论