收藏 分享(赏)

第3章 运算方法和运算部件.ppt

上传人:dzzj200808 文档编号:5750893 上传时间:2019-03-15 格式:PPT 页数:137 大小:1.53MB
下载 相关 举报
第3章 运算方法和运算部件.ppt_第1页
第1页 / 共137页
第3章 运算方法和运算部件.ppt_第2页
第2页 / 共137页
第3章 运算方法和运算部件.ppt_第3页
第3页 / 共137页
第3章 运算方法和运算部件.ppt_第4页
第4页 / 共137页
第3章 运算方法和运算部件.ppt_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、第3章 运算方法和运算部件,本章要点: 3.1 数据的表示方法和转换 3.2 带符号数据的表示方法与加减运算 3.3 二进制乘法运算 3.4 二进制除法运算 3.5 浮点数的运算方法 3.6 数据校验码,本章重点:,1 进制之间的相互转换是最基本的,应当熟练掌握; 2 定点数的原码、补码和反码表示; 3 浮点数的规格化概念,真值浮点数表示形式; 4 定点数的加减乘除运算方法(其中补码数运算最重要); 5 奇偶校验码的校验原理及校验位形成方法; 6 学会看原文资料,并熟悉其专业名词和术语。, 3.1 数据的表示方法和转换,3.1.1 数值型数据的表示和转换 1 二进制只有0 和1 两个数字符号,

2、“逢二进一,借一当二”。1 1 0 1 . 0 1 = l23 + l22 + 0 + l20 + 0 + l2 -2 23 22 21 20 2 -1 2-2 2 八进制与十六进制(用于阅读和书写)八进制:数码有八个:0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 逢八进一,借一当八十六进制:数码有十六个:0 , 1 , ,9 , A , B , C , D , E , F,3. 几个概念 权值/位权:某个固定位置上的计数单位。例:1 1 0 1 . 0 1 = l23 + l22 + 0 + l20 + 0 + l2 -2 23 22 21 20 2 -1 2-2 权值基数/底

3、:指某个进制的值R ,也即该进制所用到的数字符号个数。 如10进制 :用09 十个数码表示,基数为10又例:二进制数的基数为2 ,八进制数的基数为8,4 进制数的表示方式1 )用下标加以标注。例如:( 1010 ) 2 , ( 1010 ) 102 )用后缀字母表示不同的进制。 B 二进制 Q 八进制 H 十六进制 D 十进制 例如:375Q , Al 7H , 1 01B,例如:一个十进制数123.45的表示,123.45 =1102+ 2101+ 3 100 + 410-1+ 510-2 注:等式左边为并列表示法,等式右边为多项式表示法,例如十六进制数 (2C7.1F)16的表示,(2C7

4、.1F)16=2 162+ 12 161+ 7 160+ 1 16-1+ 15 16-2,常用几种进制的对应关系,?思考:下列数中哪些可能为十六进制数、八进制数和十进制数?108、907、A35、789、10、11、567,5. 进制转换,1).R进制转换成十进制的方法规则:按权展开后相加。即先写成多项式,然后计算十进制结果.N = dn-1dn-2 d1d0d-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-m,例如:写出(1101.01)2,(237)8,(10D)16的十进制数,(11

5、01.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=269,2)十进制转换成二进制方法,一般分为两个步骤: 整数部分的转换 除2取余法(基数除法) 小数部分的转换 乘2取整法(基数乘法),除基取余法:把给定的除以基数,取余数作为最低位的系数,然后继续将商部分除以 基数,余数作为次低位系数,重复操作直至商为 0 (P70) 例如:用基数除法将(327)10转换成二进制数,整数部分的转换,逆序,例3.7 将(105)10转换成二进制

6、。2 105 余数 结果2 52 1 最低位2 26 02 13 0 2 6 12 3 02 1 10 1 最高位 得出:(105)10=(1101001)2,逆序,整数部分转换除2取余法,乘基取整法 把给定的十进制小数乘以2,取其整数作为二进制小数的第一位,然后取小数部分继续乘以2,将所的整数部分作为第二位小数,重复操作直至得到所需要的二进制小数,例如:将(0.8125) 10 转换成二进制小数.整数部分2 0.8125=1.625 12 0.625=1.25 12 0.25=0.5 02 0.5=1 1(0.8125)10 =(0.1101)2,小数部分的转换,正序,例如:将(0.2) 1

7、0 转换成二进制小数,0.2 2 = 0.4 整数部分 0 0.4 2 = 0.8 0 0.8 2 = 1.6 1 0.6 2 = 1.2 1 0.2 2 = 0.4 0 0.4 2 = 0.8 0 0.8 2 = 1.6 1 0.6 2 = 1.2 1(0.2) 10 = 0.001100110011. 2,正序,小数部分转换乘2 取整法,正序,3)其它进制之间的直接转换法,二 八 二 十六 000 0 0000 0 1000 8 001 1 0001 1 1001 9 010 2 0010 2 1010 A 011 3 0011 3 1011 B 100 4 0100 4 1100 C 1

8、01 5 0101 5 1101 D 110 6 0110 6 1110 E 111 7 0111 7 1111 F,二进制转换成八进制,例:(10110111 .01101) 2,(10110111.01101) 2 =(267.32)8,八进制: 2 6 7 . 3 2,二进制: 010 ,110 , 111 . 011 , 010,二进制: 10 ,110 , 111 . 011 , 01,八进制转换二进制,例如: (123.46 ) 8=(001,010,011 .100,110 ) 2 =(1010011.10011)2,二进制转换成十六进制,例:(110110111 .01101)

9、 2,(10110111.01101) 2 =(1B7.68)16,十六进制: 1 B 7 . 6 8,二进制: 0001 ,1011 , 0111 . 0110 ,1000,二进制: 1 ,1011 , 0111 . 0110 ,1,十六进制转换成二进制,例如: (7AC.DE ) 16=(0111,1010,1100.1101,1110 )2 =(11110101100 .1101111 )2,手工转换捷径:,十进制八进制二进制例:十进制数11 转换为二进制数,手工转换捷径:,十进制八进制二进制例:十进制数0.3 转换为二进制数,课堂练习:,1. 十进制转二进制 48, 103 0.375

10、, 0.2 4.62 3 5/8 2. 二进制转十进制和十六进制 1011, 100100 0.1101, 0.100101 11101.1101,6. 数值符号的表示,带符号数的编码 名词解释:真值和机器数 真值:正、负号加某进制数绝对值的形式称为真值。如二进制真值: X= +1011 y= -1011 机器数:符号数码化的数称为机器数,如 : X= 01011 Y= 11011,3.1.2 十进制数的编码与运算 (P71),用四位二进制数来表示一位十进制数,称为二进制编码的十进制数(Binary-Code Decimal),简称BCD码。常见的BCD编码有8421码、2421码、余3码、5

11、421码、格雷码等。,BCD码 8421码 2421码 余3码8421码为有权代码, 0 0000 0000 0011数值为N=8d3+4d2+2d1+1d0 1 0001 0001 0100十进制数63.29的BCD码为: 2 0010 0010 01010110 0011 . 0010 1001 3 0011 0011 01104 0100 0100 01112421码为有权代码, 5 0101 1011 1000数值为N=2d3+4d2+2d1+1d0 6 0110 1100 1001 十进制数63.29的BCD码为: 7 0111 1101 10101100 0011 . 0010 1

12、111 8 1000 1110 1011余3码为无权代码,对应8421码加3而得。 9 1001 1111 1100,例:两位十进制数39可表示为(0011 1001)8421 或(0110 1100)余3码,每一位有确定的权,每一位没有确定的权,1. 十进制编码的加法运算,1) “8421”BCD码加法运算BCD码运算应将每4位二进制数分为一组,组与组之间直接运算,逢十进一。但计算机中无法区分BCD码,一概作为二进制数处理,因此,计算机做此运算后须进行调整。调整方法:和9 (1001)2, 不调整和9 (1001)2 , 加6 (0110)2修正,例:5+3=8 7+8=15 8+9=17,

13、0 1 0 1 0 1 1 1 1 0 0 0+ 0 0 1 1 + 1 0 0 0 + 1 0 0 11 0 0 0 1 1 1 1 1 0 0 0 1+ 0 1 1 0 + 0 1 1 0 1 0 1 0 1 1 0 1 1 1向高位进位2)余3码的加法运算(自学),2. 数字串在机内的表示与存储 (P73),主要有两种形式: 非压缩的十进制数串表示法:一个字节存放一个十进制数或符号的ASCII-7码; 压缩的十进制数串表示法:一个字节存放两位BCD码表示的十进制数。,本章重点:,1 进制之间的相互转换是最基本的,应当熟练掌握; 2 定点数的原码、补码和反码表示; 3 浮点数的规格化概念,

14、真值浮点数表示形式; 4 定点数的加减乘除运算方法(其中补码数运算最重要); 5 奇偶校验码的校验原理及校验位形成方法; 6 学会看原文资料,并熟悉其专业名词和术语。, 3.2 带符号数据的表示方法与加减运算,机器数:计算机中表示的带符号的二进制数。机器数有四种表示方式:原码、补码、反码和移码。,数的定点表示 定点数:操作数数据格式中小数点的位置是固定的。 计算机中的定点数只采用纯整数或者纯小数表示。,返回,定点数包括 1)带符号数(最高位表示符号)2)不带符号数 带符号数(机器数)可用原码、补码、反码或移码等编码表示。 (下面以小数为例),3.2.1 原码、补码、反码和移码 及运算,1.原码

15、表示法 编码规则:最高位为符号位(0正;1负),数值部分与真值的绝对值相同。例: 真值(X) 原码(X原)0.0010 0.0010-0.1010 1.10100.0000 0.0000-0.0000 1.0000 对于纯小数,原码定义为:,X 0X1,1-X = 1+ |X| -1X0,X原 =,原码表示数的范围(以n=5为例), 正数有2n-1-1个负数有2n-1-1个零 2 个(0的原码有两种表示:00.0和100.0),原码小数的表示范围: +0原 =0.0000000 ; -0原 =1.0000000 最大值 : 1- 2-(n-1) 最小值:-(1- 2-(n-1) 表示数的个数:

16、 2n - 1,若二进制原码小数的位数分别是8、16位,求其该数表示的最大值、最小值及所能表示数的个数?,8位: 127/128,-127/128,255 16位: 32767/32768 , -32767/32768 , 65535,原码的特点:,简单、易懂(实质是表示数的符号和绝对值) 乘除法规则较简单 加减法实现比较复杂(需要对符号位进行判断),2 补码表示法,1)取模的概念 (1)模:计量器具的容量,或称为模数。也可理解为一个计数系统的计数范围,当数值到达该计数系统的模时,计数会重新回到0。 4位字长的机器表示的二进制整数为: 00001111 共16种状态,模为16= 24 。 整数

17、N位字长的模值为 2n,一位符号位的纯小数的模值为2。,模一般用MOD 表示。 数学中的取模操作是求余数的操作,结果是一个大于或等于0,且小于模M的数。 例如: 15 MOD 12 =3 (时钟15时也即下午3时) 或写成: 15=3 (MOD 12),(2)补数* 假定M为模,若数a、b满足a+b=M,则称a、b互为补数。 在有模运算中,减去一个数a等于加上该数的补数bX-a = X+b (MOD M)补码正是利用补数概念,把负数映射到正数域中(平移模值,小数的模为2,n位整数的模为2n),从而将数的正负符号数码化,将减法运算转换为加法运算。补码的定义:正数的补码就是正数的本身,负数的补码是

18、原负数加上模。,2)补码的定义及编码规则 对于纯小数,补码定义为:X补= X+21 (mod 2),补码的编码规则,(1) 当X0时,X补=X原=X 例如: X = 0.11010 , X原= 0.11010 , X补= 0.11010 (2) 当X0时,可借助X原转换为X补,方法有两种: a) X原除掉符号位外的各位取反加“1”。 b *) 自低位向高位,尾数的第一个“1”及其右部的“0”保 持不变,左部的各位取反,符号位保持不变。 例如: X = -0.11010 , X原= 1.11010 , X补= 1.00110 补码最小负数1.000是个特殊的数(真值为-1.000,即-1)其最高

19、位既表示符号位同时又是数值,没有对应的原码。,最大的优点就是将减法运算转换成加法运算。,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 注: 最高1位已经超过字长故应丢掉,3 反码表示法,反码表示法与补码表示法有许多类似之处,对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反。反码运算不方便,一般很少用于作算术运算。,例3.20 X=+0.1011(n=4),则X反=0.1011X=-0.1011(n=4),则X反=

20、2-2-4+(-0.1011)=1.0100 反码运算是以2-2-n为模,所以,当最高位有进位而丢掉进位(即2)时,要在最低位+1。例3.21 X=0.1011, Y=-0.0100,则有:X反=0.1011, Y反=1.1011X+Y反 =X反+Y反=0.1011+1.1011反 =10.0110 =0.0111 mod(2-2-4)其中,最高位1丢掉,并要在最低位加1。,4 无符号数的表示,在数据处理的过程中,如不需要设置符号位可用全部字长来表示数值大小。如8位无符号数的取值范围是0255(2)。,真值是没有经过编码的直观数据表示方式,一般用X表示,其值可带正负号; 编码后的数据(如原码、

21、补码、反码等) 已经把正负符号数字化了, 其位数有规定,不能随便忽略任何位置上的0或1。,以机器字长8 位为例:,5 码制表示法小结,X原、X反 、X 补用“0”表示正号,用“1”表示负号; X移用“1”表示正号,用“0”表示负号。 如果X为正数,则X原=X反 =X 补。 如果X为0,则 X 补 、X移有唯一 编码, X原、X反 有两种编码。 移码与补码的形式相同,只是符号位相反。,6 数值的运算方法,计算机中,常用补码进行加减运算补码可将减法变加法进行运算补码运算特点:符号位数值位一同运算定点补码运算在加法运算时的基本规则:X补+Y补 = X+Y补(两个补码的和等于和的补码)定点补码运算在减

22、法运算时的基本规则: X-Y补=X补+-Y补,例如:已知机器字长n=8,X=44,Y=53,求X+Y=?,解:X原=0010 1100,Y原=0011 0101,X补=0010 1100,Y补=0011 0101,X补= 0 0 1 0 1 1 0 0+ Y补= 0 0 1 1 0 1 0 1,1,0,0,0,0,1,1,0,X+Y= + 97,例:已知机器字长n=8,X=-44, Y=-53,求X+Y=?,解:44补=00101100, 53补=00110101X补=-44补=11010011+1=11010100,Y补=-53补=11001010+1=11001011,X补 = 1 1 0

23、 1 0 1 0 0+ Y补 = 1 1 0 0 1 0 1 1X+Y补 = 1 1 0 0 1 1 1 1 1 超出8位,舍弃模值 X+Y=-01100001,X+Y=( -97),例:已知机器字长n=8,X=44,Y=53,求X-Y=?,解:X补=00101100,Y补=00110101,-Y补=11001011X补 =0 0 1 0 1 1 0 0+ -Y补= 1 1 0 0 1 0 1 11 1 1 1 0 1 1 1 X-Y补=11110111,X-Y=-0001001=(-9),例:已知机器字长n=8,X=-44, Y=-53,求X-Y=?,解:X补=11010100,Y补=110

24、01011,-Y补=00110101X补 = 1 1 0 1 0 1 0 0+ -Y补 = 0 0 1 1 0 1 0 11 0 0 0 0 1 0 0 1 超出8位(模值),舍弃 X-Y补=00001001,X-Y=+0001001 =(+9),当运算结果超出机器数所能表示的范围时,称为溢出。 两个异号数相加或两个同号数相减,其结果是不会溢出的; 当两个同号数相加或者两个异号数相减时,才有可能发生溢出的情况; 一旦溢出,运算结果就不正确了,必须检查溢出情况 举例如下:,3.2.2 溢出问题,解:X补=01111000,Y补=00001010,X补 = 0 1 1 1 1 0 0 0+ Y补

25、= 0 0 0 0 1 0 1 01 0 0 0 0 0 1 0X+Y补=10000010,X+Y的真值= -1111110=( -126)10运算结果超出机器数值范围发生溢出错误。(8位计算机数值表达范围:(-128+127),例:已知机器字长n=8,X= 120, Y=10,求X+Y=?,溢出判断规则与判断方法,两个相同符号数相加,其运算结果符号与被加数相同,若相反则产生溢出; 两个相异符号数相减,其运算结果符号与被减数相同,否则产生溢出。 相同符号数相减,相异符号数相加不会产生溢出。 溢出判断方法:1.双符号法,2.进位判断法, . 双符号位溢出判断法 Sf1Sf2 (也被称为变形补码)

26、,双符号含义: 00表示运算结果为正数;01表示运算结果正向溢出;10表示运算结果负向溢出; 11表示运算结果为负数。 亦即:OVR = Sf1 Sf2 = 1 有溢出OVR = Sf1 Sf2 = 0 无溢出第一位符号位为运算结果的真正符号位。,例:X=0.1001,Y=0.0101,求X+Y,解: X补= 00.1 0 0 1+Y补= 00.0 1 0 1X+Y补= 00.1 1 1 0两个符号位相同,运算结果无溢出 X+Y=+0.1110,例:X= - 0.1001,Y= - 0.0101,求 X+Y=?,解: X补= 11.0110+1 = 1 1. 0 1 1 1+ Y补= 11.1

27、010+1 = 1 1. 1 0 1 1X+Y补 = 1 1 1. 0 0 1 0最高位1丢掉两个符号位相同,运算结果无溢出X+Y= - 0.1110,例:X= 0.1011,Y= 0.0111,求 X+Y=?,解: X补 = 00. 1 0 1 1+ Y补= 00. 0 1 1 1 X+Y补= 01. 0 0 1 0两个符号位为01,运算结果正向溢出,例:X= - 0.1011,Y= 0.0111,求 X-Y=?,解: X补 = 11.0100+1 = 11.0101Y补 = 00.0111 -Y补=11.1001X补 = 1 1. 0 1 0 1+ -Y补 = 1 1. 1 0 0 1 X

28、+Y补 = 1 1 0. 1 1 1 0两个符号位10不同,运算结果负向溢出, . 进位溢出判断法 SC,两单符号位的补码进行加减运算时,若最高数值位向符号位的进位值C与符号位产生的进位输出值S相同时则无溢出,否则溢出。 例: X补= 1. 1 0 1 X补= 1. 1 1 0+ Y补= 1. 00 1 + Y补= 0.1 0 0X+Y补= 10.1 1 0 X+Y补= 10.0 1 0C=0,S=1,有溢出 C=1,S=1,无溢出X+Y=+0.010,3.2.3 定点数和浮点数 计算机中的两种表示方式,数值范围:一种数据类型所能表示的最大值和最小值 数据精度:实数所能表示的有效数字位数。 数

29、值范围和数据精度均与使用多少位二进制位数以及编码方式有关。 计算机用数字表示正负,隐含规定小数点。采用“定点”、“浮点”两种表示形式。,1. 数的定点表示方法,(1). 定点整数小数点位置固定在数的最低位之后 如: Dn-1 Dn-2 D1 D0 . 范围: 2n-1 -1 -2n-1 (采用字长n=16位补码时其值为32767 -32768) (2). 定点小数小数点位置固定在数的符号位之后、数值最高位之前。如:D0. D-1 D-(n-2) D-(n-1) 范围:1 - 2-(n-1) -1 (采用字长n=16位时其值为32767/32768 -1) 其中n表示字长多少位,数的定点表示,2

30、.1 浮点数及其一般表示格式引例:(0.0001011)2 = (0.1011000)22-3调整指数的值相当于改变小数点的位置M-尾数(Mantissa),表示有效数字的带符号纯小数常用原码或补码表示; E-阶码(Exponent),表示小数点位置的带符号整数常用移码或补码表示; r-基数(radix),通常取值2,也可取4,8,16等。 在每台机器中,浮点数的基数r是固定的常数,不必在数码中表示出来。,2. 数的浮点表示方法,浮点数 N = M rE, 浮点数可用一对定点数表示:其一般格式为:精度主要由的位数和r决定 数值范围主要由r和决定 ?思考:浮点数的表示范围多大?(可对照上述引例来

31、思考),浮点数 N = M rE,(2)浮点数的规格化,目的:字长固定的情况下提高表示精度的措施:1 增加尾数位数(但数值范围减小)2 采用浮点规格化形式,2.2 规格化方法:调整阶码使尾数满足下列关系: 尾数为原码表示时,无论正负应满足1/2 d -1,即 1.0x.x,例题:设某机器用32位表示一个实数,阶码部分8位(含1位阶符),用定点整数补码表示;尾数部分24位(含数符1位),用规格化定点小数补码表示,基数为2。则:,1. 求X=256.5 的第一种浮点表示格式 X=(256. 5)10 =+(100000000.1)2 =+(0.1000000001 2+9 )28位阶码为:(+9)

32、补=0000 100124位尾数为:(+0.10 0000 0001)补 =0.100 0000 0010 0000 0000 0000所求256.5的浮点表示格式为:0 000 1001 0 100 0000 0010 0000 0000 0000用16进制表示此结果则为:(09402000)16,n位,Y= -(256. 5)10 =-(100000000.1)2 = -0.1000000001 2+9 8位阶码为:(+9)补 = 0000 100124位尾数为:(-0.10 0000 0001)补 = 1.011 1111 1110 0000 0000 0000所求-256.5的浮点表示

33、格式为: 0000 1001 1011 1111 1110 0000 0000 0000用16进制表示此结果则为:(09BFE000)16,2. 求Y= -256.5 的第一种浮点表示格式,2.3 阶码的移码表示法,移码:在真值X上加一个常数(偏置值),使数据的正负符号数字化的一种编码方法。(相当于X在数轴上向正方向平移了一段距离,通常用于表示整数)对于n位定点整数,偏置值常取2n-1,此时其编码规则较简单。 移码的编码规则:X移与X补符号位(最高位)相反,其它各位都相同。,移码的编码规则: X移与X补符号位(最高位)相反,其它各位都相同。 例1: X = 1011101 X移 = 27+X

34、= 10000000+1011101 = 11011101 X补 = 01011101 例2: Y = -1011101 Y移 = 27+Y = 10000000-1011101=00100011 Y补 = 10100011 用移码表示阶码的优点: (1) 移码可视为无符号数,全为0时对应的真值最小,全为1时对应的真值最大,有助于两个浮点数进行阶码的大小比较; (2) 简化机器中的判零电路。当阶码全为0,尾数也全为0时,表示机器零。,3 微机中所能表示的数值类型,1无符号整数包含字节、字、双字和四字的无符号的二进制数。 2带符号整数包含字节、字、双字和四字的带符号的二进制定点整数。 3浮点数采

35、用IEEE 754标准所规定的格式。 4指针数据指针是主存单元的地址。IA-32 结构定义了两种类型的指针:近指针(32位)和远 指针(48位)。 ?思考:它们的数据的表示范围?,IEEE754标准格式如下,(-1)S 2E (D0.D-1D-(P-1)最高是数符S占1位,0表示正、1表示负;指数项E,基数是2,E是一个带有一定偏移量的无符号整数;尾数部分D,它是一个带有一位整数位的二进制小数真值形式。其规格化形式应调整阶码使其尾数整数位D0为1且与小数点一起隐含掉。, 3.3 二进制乘法运算,0 带符号数的移位操作带符号数的移位指算术移位。算术左移1位即乘以2操作,算术右移1位即除以2操作,

36、移位的规则与码制有关。 0.1 原码的移位规则符号位均不变,空出位一律以“0”补入。例:移位前1X1X2 Xn-1Xn移位后1X2X3 Xn 0 (若X1为1则溢出)右移后10X1 Xn-2Xn-1 (Xn丢弃),0.2 补码的移位规则 左移:符号位不变,所有位左移,末位补入“0” 如果所有位左移后符号位变了,则溢出!右移:符号位不变,连同符号位右移注意:机器数移位后总的位数不变!,乘除的实现途径: 软件实现(低档机中只提供加、减、移位等指令) 2) 在加减运算器基础上,增加少量电路实现(有乘除指令) 3) 设置专用的高速阵列乘除运算器。,3.3.1 定点数一位乘法 1. 定点原码一位乘,积第

37、一次累加后的值,积第二次累加后的值,积第三次累加后的值,积第四次累加后的值,计算机的计算过程:,在机器中采用A,B,C寄存器来分别存放部分积,被乘数和乘数 (1)在机器内一次加法操作只能求出两数之和,因此每求得一个相加数时,就得与上次部分积相加。(2)人工计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(或被乘数)的两倍。由于在求本次部分积时,前一次部分积的最低位,不再参与运算,因此可将其右移一位。相加数可直送而不必偏移,于是用N位加法器就可实现两个N位数相乘。(3)部分积右移时乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可接

38、收部分积右移出来的一位,因此,完成乘法运算后,A寄存器中保存乘积的高位部分,乘数寄存器C中保存乘积的低位部分。,原码一位乘运算规则: (P82),计算机的计算过程:,注意: 两操作数的绝对值相乘, 符号位单独处理。 寄存器A、B均设置双符号位,第1符号位始终是部分积符号,决定在右移时第1符号位补0 操作步数由乘数的尾数位数决定,用计数器Cd来计数。即作n次累加和移位。 最后是加符号位,根据SxSy决定。,定点补码一位乘法 (P84),设被乘数X补= X0 .X1 X2 Xn 乘数Y补= Y0 .Y1 Y2 Yn则XY补 = = X补(0.Y1Y2 Yn) + -X补Y0 (证明见P84),实现

39、补码乘法有两种方法,现在广泛使用的是Booth算法,也称为比较法。这种方法在机器实现中要在乘数末位Yi之后再增加一个附加位Yi+1,并令其初始值为0。然后根据比较Yi、 Yi+1的值决定下一步操作,规则如下:(部分积初始为0),例3.35:设X=-0.1101,Y=0.1011,即X补=11.0011,Y补=0.1011,-X=00.1101 求XY补。(P87) 计算过程如下:,部分积 乘数Y Yi Yi+1 说明,乘积高位 乘积低位,XY补=1.01110001, XY= - 0.10001111,X补=11.0011B寄存器,Y补=0.1011C寄存器,0A寄存器(累加器),-X补=00

40、.1101,初始值与符号位:A寄存器存放部分累加和,初始为0,采用双符号位。第1符号位指示累加和的正负,以控制右移时补0或补1。B中存放被乘数的补码,双符号位。 基本操作:用C寄存器最末两位作判断位,决定下一步的操作。 移位:在右移时,第2符号位值移入位数的最高位,第1符号位值不变且移入第2符号位,而A寄存器末位移入C寄存器。 步数与最后一步操作:乘数有效位是4位,共作5步。注意,最后一步不移位因为这一步是用来处理符号位的。,引例: X=0.1011, Y=0.1101 用手算求商C和余数R, 3.4 二进制除法运算,3.4.1 定点除法运算,1. 定点原码一位除法 (1)恢复余数法 (例见P

41、92)先做减法试探是否够减:若部分余数为非负表示够减,该位商上“1”否则表示不够减,该位商上“0”,并要恢复余数。求第i次求商操为: Ri = 2Ri-1-Y; (试减) 若够减(Ri0),则商1。 否则(Ri0),商0、恢复余数Ri Ri= Ri+Y (Ri恢复为2Ri-1),3.4.1 定点除法运算,(2) 原码不恢复余数法(原码加减交替法) 求新余数Ri+1时,把恢复余数、左移和相减简化为左移和相加:2(Ri+Y) -Y 2Ri+Y 即,若Ri 0,商1,下次作2Ri-Y求新余数和商若Ri0,商0,下次作2Ri+Y求新余数和商 使运算的次数固定。通式表示:Ri+1 = 2Ri + (1-

42、2Qi)Y举例如下:,例3.39:设被乘数X=0.1011,Y=0.1101,用加减交替法求X/Y. -Y补=11.0011, 计算过程如下:,X/Y=0.1101, 余数=0.0111,A寄存器中开始时存放被除数的绝对值,以后将存放各次余数,取双符号位。B寄存器存放除数的绝对值,取双符号位。C寄存器同来存放商,取单符号位。 第一步操作:将被除数X视为初始余数R0,根据R0符号位正(绝对值),令商符为0,正是的商符以后再置入。第一步为-Y。 商值则根据余数R0的符号来决定,正则商上1,求下一位商的办法是余数左移一位再减去除数;当余数为负则商上0,求下一位商的办法是余数左移一位再加上除数。左移位

43、时末位补0。 操作步数与最后一步操作:如果要求得n位商(不含符号位),则需作n步“左移-加减”循环;若第n步余数为负,则需增加一步恢复余数,这增加的一步不移位。,2.定点补码一位除法(加减交替法),1求商及新余数的运算规则Ri+1补与Y补同号:上商1,下一步作左移、相减;异号:上商0,下一步作左移、相加。末位商恒置“”此法操作简单,易于实现。运算的最大误差为2-n,以上是在|X|Y|即不溢出的前提下; (1)第一步如果被除数与除数同号,用被除数减去除数;若两数异号,用被除数加上除数。如果所得余数与除数同号上商1,若余数与除数异号,上商0,该商即为结果的符号位。 (2)求商的数值部分 如果上次上

44、商1,将余数左移一位后减去除数;如果上次上商0,将余数左移一位后加上除数。然后判断本次操作后的余数,如果余数与除数同号上商1;若余数与除数异号上商0。如此重复执行 n-l次(设数值部分有n位)。 (3)商的最后一位一般采用恒置1的办法,并省略了最低位+1的操作,此时最大误差为士2-n。如果对商的精度要求较高则可按规则(2)再进行一次操作以求得商的第n位。当除不尽时若商为负,要在商的最低一位加 1,使商从反码值转变成补码值;若商为正最低位不需要加1。,例3.40:设X补=1.0111,Y补=0.1101,求X/Y补.-Y补=11.0011,计算过程如下:,例3.40最低位恒置1,余数不正确(不够

45、精确)。 A寄存器存放被除数(补码),以后存放余数,取双符号位。B寄存器存放除数(补码),双符号位。C寄存器存放商,初始值为0(未考虑商符之前),单符号位。 如余数为0,则表示除尽。例3.41如采用商的最低位恒置1的方法,其误差为2-n=2-4。 补码除法规则表补充说明: 1、表中i=0n-1. 2、上采用末位恒置1的方法,操作简便。如要提高精度,则要提高精度,则按上述规则多求一位,再采用以下方法对商进行处理:两数能除尽时,如除数为正,商不必加2-n, 如除数为负,商加2-n;两数除不尽时,如商为正,商不必加2-n, 如商为负,商加2-n 。,例3.42 X补=1.0111, Y补=1.001

46、1, 则-Y补 =0.1101。求X/Y补=?被除数(余数) 商 操作说明11 . 0111 + 00 . 1101 两数同号,+-Y补00 . 0100 0 余数与除数异号,商0左移 00 . 1000+ 11 . 0011 +Y补11 . 1011 01 同号,商1左移 11 . 0110+ 00 . 1101 +-Y补00 . 0011 010 异号,商0 左移 00 . 0110 + 11 . 0011 +Y补11 . 1001 0101 同号,商1左移 11 . 0010+ 00 . 1101 +-Y补11 . 1111 01011 同号,商1X/Y补=0.1011 余数补=1.1111 2-4,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报