欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    计算机的运算方法 (2).ppt

    • 资源ID:6342589       资源大小:3.04MB        全文页数:194页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机的运算方法 (2).ppt

    第六章 计算机的运算方法与运算器,计 算 机 组 成 原 理,2013年3月16日,6.1.1 非数值数据表示法,字符表示法汉字表示法,1、ASCII码,使用7bit表示128个字符 From 000 0000 to 111 1111 27=128 注意:ASCII中的数字字符和数字本身不相等 几乎所有计算机均支持该代码集 但不是所有语言都能用128个字符表示,计算机利用寄存器存储数据 寄存器中每个位称bit(Binary DigiT)最高有效位(MSB)最低有效位(LSB),专用名词,2、汉字表示法,8 bit数据仅能表示256个字符,常用汉字6000多个,故其无法表示汉字 GB2312国家标准采用16位表示 与ASCII字符的区别,最高有效位MSB=1 内码,外码(输入法),字模码(显示用),GB2312-80国家标准,1981年,GB2312-80国家标准,包括6763个汉字/682个非汉字字符,称为国标码或国际交换码 GB2312字符集的构成:一级常用汉字3755个,按汉语拼音排列 二级常用汉字3008个,按偏旁部首排列 非汉字字符682个,汉字标准,GB2312-1980(GB0)(简体)6763个汉字 GB13000-1993 20902个汉字(Unicode 1.1版本)汉字扩展规范GBK1.0 标准1995(非国家标准)21003个字符(兼容GB2312)GB18030-2000(1/2/4字节编码)27484汉字(向下兼容GB2312 GBK,GB13000),字模码介绍,字模码是用点阵表示的汉字字型代码,是汉字的输出形式。字模点阵的信息量是很大的,所占存储空间也很大。以16*16为例,每个汉字要占用32个字节,因此字模点阵只能用来构成汉字库,而不能用于机内存储。,6.1.2 进制转换,二进制数转八进制 二进制数转十六进制 二进制数转十进制 十进制数转二进制,1、二到八或十六进制转换,二进制转到八进制 从小数点向左右三位一分组(10 011 100.01)2=(234.2)8 010 二进制转十六进制 从小数点向左右四位一分组(1001 1100.01)2=(9C.4)16 0100,说明:整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,则出错。,2、二进制转十进制,从二进制数求其十进制的值,逐位码权累加求和,10010001127026 025 124 023 022 021 120,3、十进制转二进制,整数部分除2取余 小数部分乘2取整,5,2,1,0,0.625*2,1,0.25*2,0,0.5*2,1,0.0,除尽为止 1011,低,高,求得位数满足要求为止,4、进制转换的简单运算方法,17/128的二进制表示方法?大数的转换方法,记住几个常用的2的幂,2532 2664 27128 28256 29512 2101024(1Kilo)2112048 2124096 2138182 21416364 21532728 21665536 2201048576(1Mega)2301073741824(1Giga)2401Tera 更大的单位是多少?2501 Peta 2601 Exa 2701 Zetta 2801 Yotta,6.2数据的表示方法 6.2.1 数据格式,计算机中常用的数据表示格式有两种:(1)定点格式(2)浮点格式,定点格式(小数点位置固定)容许的数值范围有限,但要求的处理硬件比较简单。,浮点格式(小数点位置浮动)容许的数值范围很大,但要求的处理硬件比较复杂。,1.定点数的表示方法,定点表示:约定机器中所有数据的小数点位置是按约定固定不变的,小数点就不再使用记号“.”来表示。定点数据的形式:纯小数或纯整数。,(设:定点数表示为012n 其中:0符号位,0代表正号,1代表负号),小数点的位置约定在符号位x0的后面(不显示),小数点的位置约定在数值位xn的后面(不显示),例:X=+1010110.,纯整数:X=01010110.,正数,符号位取0,Y=-1101001.,纯整数:Y=11101001.,负数,符号位取1,X=+0.11011,Y=-0.10101,符号位取0,纯小数:X=0.11011,符号位取1,纯小数:X=1.10101,纯整数:X=01010110,符号位取0,纯整数:Y=11101001,符号位取1,符号位取0,纯小数:X=0.11011,符号位取1,纯小数:X=1.10101,注意到:无论是整数或是小数,在机器数的表示中,都不出现小数点“.”,只是约定其位置。,2、浮点数的表示方法,例:156.78=15.678101=1.5678102=0.15678103=MRE其中:M为尾数;R为基数;E为阶码(指数)。,二进制数,在定点计算机中,一般约定:尾数|M|1.0,并按此原则确定各数据的浮点表示格式。上例+156.67=0.15678 103(规格化表示法)同理:对于二进制数+1011.1101=+0.10111101 2+4=0.10111101 2+100=MRE,那么,计算机中究竟采用哪种数据形式?,显然存在多种数据形式,可见:一个机器浮点数由阶码E和尾数M及其符号位组成。约定:尾数M用定点小数表示,给出有效数字的位数,M决定 了浮点数的表示精度;阶码E:用整数形式表示,指明小数点在数据中的位置,其决定了浮点数的表示范围。浮点数的一般形式为:,按照 IEEE754 的标准,32位浮点数和64位浮点数的标准格式为:,其中:=浮点数的符号位,0表示正数,1表示负数。=尾数,23位,用纯小数表示。=阶码,8 位,阶符采用隐含方式,即采用移码方式来表示正负指数。,其中:=浮点数的符号位,0表示正数,1表示负数。=尾数,52位,用纯小数表示。=阶码,11 位,阶符采用隐含方式,即采用移码方式来表示正负指数。,几点注释:为了提高数据的表示精度,当尾数的值不为 0 时,其绝对值|M|应0.5,即:尾数绝对值域的最高有效位应为1,否则通过修改阶码同时左右移小数点的办法,使其变成这一表示形式,这称为浮点数的规格化表示。浮点数所表示的范围显然远比定点数大。以下两种情况计算机都把该浮点数看成零值,称为机器零。当浮点数的尾数M为 0;(不论其阶码E为何值)当阶码E的值Emin值时。(不管其尾数M为何值),例子,设机器数字长为 24 位,欲表示3万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各 取1 位外,阶码、尾数各取几位?,满足 最大精度 可取 m=4,n=18,解:,6.2.2 数的机器码表示,基本思想:把符号位和数字位一起编码来表示一个 实际的数。主要表示方法有:原码、补码、反码、移码等。各种编码表示的数称为机器数或机器码;其对应的真实数值称为该编码对应的真值。,1.原码表示法,若定点小数为x=0.12n,则其原码表示的定义是:式中原是机器数,是真值。例如,+0.1001,则原0.1001-0.1001,则 原1.1001,x 1 x 01-x=1+|x|0 x-1,定点小数,2-n|X|1-2-n,下溢/上溢,最低有效位,最高有效位,对于定点整数 x=12n,则原码的定义是:对于定点整数,其原码形式为:原=012n,注意到:原码机器中“+0”、“-0”有两种形式:对于定点小数:+0原=0.0000-0原=1.0000对于定点整数:+0原=00000.-0原=10000.,2n0 2n2n|02n,定点整数,1|X|2n-1,上溢,最高有效位,最低有效位,2.补码表示法,补码的概念(以钟表对时为例)假设现在的标准时间为4点正;而有一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一是将时针向前拨12-3=9格。显然:这两种方法都能对准到4点,由此可以看出,减3和加9是等价的。所以称:当模数Mod=12时,9是(-3)补码。用数学公式表示:-3+9(mod12)“模”表示被丢掉的数值。上式在数学上称为同余式。设某数为x,当Mod=12时,x-3=x+9、x+7=x-5 都是等价的。从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。,补码的定义:,1、定点小数,例如+0.1011,则补0.1011;-0.1011,则补10+1.0101,正数的补码就是本身,负数的补码需作运算,x 1 x 0 2+x=2-|x|0 x-1,(mod 2),小数:X 1-2-(n-1)X0 x补=2+X=2-|X|0X-1,根据补码定义,求负数的补码时需作一次减法运算,这显然不是补码方法的初衷。后面将介绍反码表示法可以解决负数的求补问题。2、定点整数,例:已知x=+10111,y=-11011,求 x补、y补(n=5)按定义:x补=010111y补=25+1+y=1000000-11011=100101,x 2n x 0 2n+1+x=2n+1-|x|0 x-2n,(mod 2n+1),注:上式机器数的位数为n+1,整数:X 2(n-1)-1 X0 x补=2n+X=2n-|X|0X-2(n-1),完成下列数的真值到补码的转换X1=+01011011 X2=-01011011,X1补=01011011,X2补=10100101,注:0的补码只有一种形式 对于定点小数:0补0补0.0000 对于定点整数:0补0补00000.因此,补码的表示范围相对于原码、反码来讲多一种,定点小数可以表示-1,n+1位定点整数可以表示-2n。,3.反码表示法,二进制数求反:就是二进制的各位数码0变为1,1变为0。即:若 xi=0,则=1。若 xi=1,则=0.对定点小数,反码的定义参见书。,正数的反码就是本身,负数的反码则是符号位为1,数值位求反。,由上式可以得出:x反+|x|=1.1111=10.00-0.001=2-2-n得出:反(22n)0 x-1,比较反码与补码的公式,反(22n)补2可得到:补反2n由此可知一个由反码求补码的重要公式,即:一个负数的补码,可以通过将该数 符号位置1,其余取反,然后在最末位(2-n)上加1 的方法直接获得。,4.移码表示法,在计算机中,移码通常用于表示浮点数的阶码。由于阶码一般取整数,所以移码通常只用于整数的表示。对定点整数,移码的定义是:移2n2n2n(n为移码数值部分的位数),移码表示法,X移=2n-1+X 2n-1-1 X-2n-1,X1=0101 0101X1补=0101 0101X1移=1101 0101X2=-0101 0101X2补=1010 1011X2移=0010 1011,移码在数轴上的表示,定点小数没有移码定义 平行移动 移码为全0时表示真值最小,为-8;移码为全1时,表示真值最大,为+7,数值,15,7,-,8,0,0,编码,例:若阶码数值部分为5位,以表示真值,则 移25 25 25 又例:当正数10101 时,移1,10101 当负数10101 时,移2525101010,01011。注意到:移码中的逗号不是小数点,而是表示左边一位是符号位。显然,移码中符号位0表示的规律与原码、补码、反码相反。移码的表示范围和补码一致,0只有一种表示方式,只是符号位正好相反。,机器码表示法小结:,在数据的四种机器表示法中,正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法。补码和移码的0只有一种表示方法,因此其表示范围相对于原码和反码多一种,定点小数可表示-1(移码没有小数形式),正数可表示-2n。移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反。,42,各种编码,+3,-1,0,3,111,+2,-2,1,2,110,+1,-3,2,1,101,0,-4,3,0,100,-1,+3,+3,+3,011,-2,+2,+2,+2,010,-3,+1,+1,+1,001,-4,0,+0,+0,000,移码,补码,反码,原码,Binary,Number Stored,Number Represented,由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中数用补码表示,补码存储,补码运算。(也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码运算),6.3 定 点 运 算,6.3.1 移位运算,1.移位的意义,15 米=1500 厘米,小数点右移 2 位,机器用语,左移 绝对值扩大,右移 绝对值缩小,在计算机中,移位与加减配合,能够实现乘除运算,2.算术移位规则,1,右移 添 1,左移 添 0,0,反 码,补 码,原 码,负数,0,原码、补码、反码,正数,添补代码,码 制,符号位不变,例6.16,设机器数字长为 8 位(含一位符号位),写出A=+26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。,解:,A=+26,则 A原=A补=A反=0,0011010,+6,0,0000110,+13,0,0001101,+104,0,1101000,+52,0,0110100,+26,0,0011010,移位前,=+11010,例6.17,设机器数字长为 8 位(含一位符号位),写出A=26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。,解:,A=26,6,1,0000110,13,1,0001101,104,1,1101000,52,1,0110100,26,1,0011010,移位前,原码,=11010,6,1,1111001,13,1,1110010,104,1,0010111,52,1,1001011,26,1,1100101,移位前,7,1,1111001,13,1,1110011,104,1,0011000,52,1,1001100,26,1,1100110,移位前,补码,反码,3.算术移位的硬件实现,(a)真值为正,(b)负数的原码,(c)负数的补码,(d)负数的反码,出错,影响精度,出错,影响精度,正确,影响精度,正确,正确,4.算术移位和逻辑移位的区别,算术移位,有符号数的移位,逻辑移位,无符号数的移位,逻辑左移,逻辑右移,低位添 0,高位移丢,高位添 0,低位移丢,例如 01010011,逻辑左移,10100110,逻辑右移,01011001,算术左移,算术右移,00100110,11011001(补码),高位 1 移丢,10110010,定点补码加/减法运算,运算方法及实现 补码加减法运算公式 溢出检测 补码加减法逻辑实现 快速加法器,补码加减法的实现,X+Y补=X补+Y补 两数和的补码等于两数补码之和 X Y 补=X补+-Y补=X补-Y补 两数差的补码等于两数补码之差 减法变加法,关键是求-Y补-Y补=Y补补 对 Y补逐位取反,再在最低位加 1,补码加法公式证明,X+Y补=X补+Y补 x0 y0(无需证明)x0 y0(2/3证明相同)x0 y0 只需证明2/4两种情况即可,(2)x0 y0,x补=x y补=2+y x补+y补=x+2+y=2+(x+y)当x+y0时 2+(x+y)2 进位位舍去 x补+y补=2+(x+y)=x+y(mod 2)=x+y补(mod 2),(4)x0 y0,x+y2 2+(2+x+y)mod 2=(2+x+y)=x+y补 mod 2,补码减法公式证明,X-Y补=X补-Y补?X-Y补=X补+-Y补(加法公式)-Y补=-Y补?-Y补+Y补=Y+(-Y)补=0补=0 故-Y补=-Y补成立-Y补=Y补补 X-Y补=X补+-Y补=X补-Y补,补码加法的几种情况,正正得负,正溢出,负负得正,负溢出,正常结果,符号位进位舍去,正常结果,计算机如何识别运算结果是否溢出,单符号数溢出检测1,正正得负 负负得正 结果溢出 设两数符号位为f0 f1 和数符号位fs,单符号数溢出检测2,符号位进位Cf,最高位进位Cn,Cf=0,Cn=0,Cf=1,Cn=1,Cf=0,Cn=1,Cf=1,Cn=0,单符号数溢出检测2,溢出信号V对应的真值表,双符号数溢出检测,非正常符号位,溢出,符号位进位舍去,正常结果,正常结果,非正常符号位,溢出,双符号数溢出检测,溢出信号V对应的真值表,单符号补码加/减器电路实现,方式控制M,M0加M=1减,C0,FAn-1,Sn-1,FAn-2,FA1,FA0,Cn1,Cn2,C1,Sn-2,S1,S0,Cn,Xn-1,Yn-1,Xn-2,Yn-2,X1,Y1,X0,Y0,减法的避免减少了逻辑器件 控制信号M如何产生?,符 号 位,4.补码加减法的硬件配置,6.3.3 乘法运算,1.分析笔算乘法,A=0.1101 B=0.1011,AB=0.10001111,0.1 1 0 1,0.1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0.1 0 0 0 1 1 1 1,符号位单独处理,乘数的某一位决定是否加被乘数,4个位积一起相加,乘积的位数扩大一倍,乘积的符号心算求得,?,1.人工算法与机器算法的同异性 在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。设n位被乘数和乘数用定点小数表示(定点整数也同样适用)被乘数 原f.n110乘数 原f.n110 则乘积:原(ff)(0.n110)(0.n110)式中,f为被乘数符号,f为乘数符号。,然而,人们习惯的算法对机器并不完全适用。原因之一:机器通常只有n位长,两个n位数相乘,乘积可能为2n位。原因之二:只有两个操作数相加的加法器难以胜任将n个位积一次相加起来的运算。早期计算机中为了简化硬件结构,采用串行的1位乘法方案,即多次执行“加法移位”操作来实现。这种方法并不需要很多器件。然而串行方法毕竟太慢。随着大规模集成电路问世以来,出现了各种形式的流水式阵列乘法器,它们属于并行乘法器。,2.笔算乘法改进,A B=A 0.1011,=0.1A+0.00A+0.001A+0.0001A,=0.1A+0.00A+0.001(A+0.1A),=0.1A+0.010 A+0.1(A+0.1A),=0.1A+0.1 0 A+0.1(A+0.1A),=2-1A+2-1 0 A+2-1(A+2-1(A+0),第一步 被乘数A+0,第三步 部分积+被乘数,3.改进后的笔算乘法过程(竖式),0.0 0 0 0,0.1 1 0 1,0.1 1 0 1,0.1 1 0 1,0.0 0 0 0,初态,部分积=0,乘数为 1,加被乘数,乘数为 1,加被乘数,乘数为 0,加 0,=,小结,被乘数只与部分积的高位相加,由乘数的末位决定被乘数是否与原部分积相加,然后 1 形成新的部分积,同时 乘数 1(末 位移丢),空出高位存放部分积的低位。,硬件,3个寄存器,具有移位功能,一个全加器,4.原码乘法,(1)原码一位乘运算规则,以小数为例,数值部分为绝对值相乘 x*y*,(2)原码一位乘递推公式,z0,开始,i=0,0,Yn=1,+0,+X,Y右移一位 i+1i,i=n,X0Y0P0,结束,Y,N,N,Y,原码乘法 算法流程图,加法次数,n次 作为加法,一定移位 符号位单独计算,例子,已知X=0.1101 Y=-0.1011 计算X原Y原,00.1101 00.0110 00.1101,部分积,01.0011 1 00.1001 11 00.0000,00.1001 11 00.0100 111 00.1101,01.0001 111 00.1000 1111,乘数,1,Y0,Y0.1011,Y0.101,Y0.10,判断位,说明,P0=0 Y4=1,+|X|,右移一位得P1 Y4=1,+|X|,右移一位得P2 Y4=0,+0,右移一位得P3 Y4=1,+|X|,右移一位得P4=|X|Y|,+,Y0.1,+,+,例题,已知 x=0.1110 y=0.1101 求x y原,解:,数值部分的运算,0.0 0 0 0,0.1 1 1 0,0.1 1 1 0,0.0 0 0 0,0.1 1 1 0,0.1 1 1 0,部分积 初态 z0=0,逻辑右移,逻辑右移,数值部分按绝对值相乘,x*y*=0.1 0 1 1 0 1 1 0,则 x y原=1.1 0 1 1 0 1 1 0,特点,绝对值运算,逻辑移位,例题 结果,用移位的次数判断乘法是否结束,部分积R0,乘数R1,Yn 判断位,|X|=0.1101,|Y|=0.1011,+|X|,+|X|,+0,+|X|,原码乘法逻辑结构,&,R0 部分积,计 数 器,=+Yn|X|=/2,控制电路,(4)原码两位乘,原码乘,符号位 和 数值位 部分 分开运算,两位乘,每次用 乘数的 2 位判断 原部分积是否加 和 如何加 被乘数,1 1,1 0,0 1,0 0,3?,先 减 1 倍 的被乘数再 加 4 倍 的被乘数,(5)原码两位乘运算规则,例6.22,已知 x=0.111111 y=0.111001 求xy原,0 0 0.0 0 0 0 0 0,0 0 0.1 1 1 1 1 1,0 0 0.1 1 1 1 1 1,0 0.1 1 1 0 0 1,0,初态 z0=0,+x*,Cj=0,0 0 1.1 1 1 1 1 0,+2x*,Cj=0,1 1 1.0 0 0 0 0 1,x*,Cj=1,0 0 0.1 1 1 1 1 1,+x*,Cj=0,0,0,1,补码右移,补码右移,解:,数值部分的运算,数值部分的运算,x*y*=0.1 1 1 0 0 0 0 0 0 1 1 1,则 x y原=1.1 1 1 0 0 0 0 0 0 1 1 1,例6.22 结果,特点,绝对值的补码运算,算术移位,用移位的次数判断乘法是否结束,(6)原码两位乘和原码一位乘比较,绝对值,绝对值的补码,逻辑右移,算术右移,n,n,思考n 为奇数时,原码两位乘 移?次,最多加?次,5.补码乘法,设 被乘数,乘数,被乘数任意,乘数为正,同原码乘法,但 加 和 移位 按 补码规则 运算,乘积的符号自然形成,被乘数任意,乘数为负,乘数y补,去掉符号位,操作同,最后 加x补,校正,(1)补码一位乘运算规则,以小数为例,Booth 算法,(被乘数、乘数符号任意),x y补,2-1,2-2,附加位 yn+1,Booth 算法递推公式,z0补=0,z1补=2-1(yn+1yn)x补+z0补 yn+1=0,zn补=2-1(y2y1)x补+zn-1补,x y补=zn补+(y1y0)x补,最后一步不移位,如何实现 yi+1yi?,0 0,0 1,1 0,1 1,0,1,-1,0,例6.23,已知 x=+0.0011 y=0.1011 求xy补,解:,0 0.0 0 0 0,1 1.1 1 0 1,1 1.1 1 0 1,0 0.0 0 1 1,1 1.1 1 0 1,0 0.0 0 1 1,1 1.1 1 0 1,1.0 1 0 1,0,x补=0.0011,y补=1.0101,x补=1.1101,+x补,+x补,+x补,+x补,+x补,xy补=1.11011111,最后一步不移位,例 用补码一位乘法计算X补 Y补,X=0.10111,Y=0.10101 解:X补=1.01001,-X补=0.10111 Y补=0.10101,部分积R0,乘数R1,判断位YnYn+1,X补=1.01001,-X补=0.10111 Y补=0.10101,+-X补,+X补,+-X补,+X补,+-X补,+X补,部分积R0,乘数R1,判断位YnYn+1,(2)Booth 算法的硬件配置,乘法小结,原码乘 符号位 单独处理 补码乘 符号位 自然形成,原码乘去掉符号位运算 即为无符号数乘法,不同的乘法运算需有不同的硬件支持,整数乘法与小数乘法完全相同 可用 逗号 代替小数点,课堂练习与思考:,1.一位乘是指将乘法转化为“累加部分积与移位”循环,因此()。A.在原码一位乘法中只有求和操作而无相减操作 B.在补码一位乘法中只有求和操作而无相减操作 C.在原码一位乘法中既有求和操作又有相减操作 D.不管是原码一位乘或补码一位乘,都既有求和操作又有相减操作,A,2.在原码一位乘中,当乘数Yi为1时,()。A.被乘数连同符号位与原部分积相加后,右移一位;B.被乘数绝对值与原部分积相加后,右移一位;C.被乘数连同符号位右移一位后,再与原部分积相加;D.被乘数绝对值右移一位后,再与原部分积相加;,B,4设n=4位(不包括符号位在内),原码两位乘需做 次移位,最多做 次加法;补码Booth算法需做 次移位,最多做 次加法。,课堂练习与思考:,2,3,4,5,3.在补码Booth一位乘法中,如果判断位YnY(n+1)=10,则下一步(但不是最后一步)的操作是将部分积加上,再向移一位。(设x为被乘数,y为乘数),右,-X补,6.3.4 除法运算,1.分析笔算除法,x=0.1011 y=0.1101 求 xy,0.1 0 1 1,0.1 1 0 1,0.0 1 1 0 1,0.0 1 0 0 1,0.0 0 1 1 0 1,0.0 0 0 1 0 1,0.0 0 0 0 1 1 0 1,0.0 0 0 0 0 1 1 1,1,商符单独处理,心算上商,余数不动低位补“0”减右移一位的除数,上商位置不固定,商符心算求得,0,0.,1,0,1,0,0,0,?,?,?,计算机计算需考虑的几点:1、计算机中,小数点是固定的,不能简单地采用手算的办法。为便于机器操作,使“除数右移”和“右移上商”的操作统一起来。2、机器的运算过程和人毕竟不同,人会眼看心算,一看就知道够不够减。但机器却不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算。这种方法称为恢复余数法。要恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。,2.笔算除法和机器除法的比较,商符单独处理,心算上商,符号位异或形成,|x|y|0 上商 1,|x|y|0 上商 0,2 倍字长加法器,上商位置 不固定,1 倍字长加法器,在寄存器 最末位上商,3.原码除法,以小数为例,被除数不等于 0,除数不能为 0,约定,恢复余数除法,如何判断是否够减 原码运算判断借位 利用补码作减法,判断余数符号即可 余数为负数时,必须恢复余数 即将余数加除数,恢复成原来的值。求下一位商,必须将余数左移一位,再与除数比较 比较,上商(恢复),余数移位,再比较,直到获得商所需要的位数为止。,00.1001 01.0010 11.0101,被除数/余数,00.0111 00.1110 11.0101,00.0011 00.0110 11.0101,商,上商位,说明,减Y比较,左移一位 减Y比较,余数R00,商=0 加Y恢复余数,余数R10,商上1 左移一位 减Y比较,R20,商上1 左移一位 减Y比较,R30,商上0 加Y恢复余数,左移一位 减Y比较,R40,商上1,11.1110 00.1011,00.0001,00.0110 00.1100 11.0101,11.1011 00.1011,0.110,0.1101,0.110,0.1,0,0,0.11,+Y补,+Y补,+Y补,+Y补,+,+,恢复余数除法问题,需要进行恢复余数的操作 恢复余数的操作次数不确定,故运算时间不固定,影响除法速度。实际应用通常采用不恢复余数除法。,(2)不恢复余数法,余数 Ri0 上商“1”,2Ri y*,余数 Ri0 上商“0”,Ri+y*恢复余数,2(Ri+y*)y*=2Ri+y*,加减交替,恢复余数法运算规则,不恢复余数法运算规则,上商“1”2Ri y*,上商“0”2Ri+y*,(加减交替法),解:,例6.25,0.1 0 1 1,1.0 0 1 1,0.1 1 0 1,1.0 0 1 1,1.0 0 1 1,0.1 1 0 1,0.0 0 0 0,+y*补,0,+y*补,+y*补,+y*补,+y*补,x原=1.1011,y*补=0.1101,y*补=1.0011,y原=1.1101,1,1,0,1,逻辑左移,x0 y0=1 1=0,上商 n+1 次,例6.25 结果,特点,用移位的次数判断除法是否结束,第一次上商判溢出,移 n 次,加 n+1 次,(3)原码加减交替除法硬件配置,A、X、Q 均 n+1 位,用 Qn 控制加减交替,Ri补=0.1000,4.补码除法,(1)商值的确定,x补=0.1011,y补=1.1101,Ri补=0.1000,x补=1.1101,y补=0.1011,x*y*,Ri补与y补同号,“够减”,x*y*,Ri补与y补异号,“不够减”,+,+,比较被除数和除数绝对值的大小,x 与 y 同号,小结,x补=0.1011,y补=1.1101,Ri补=0.1000,x补=1.1101,y补=0.1011,Ri补=0.1000,x*y*,Ri补与y补异号,“够减”,x*y*,Ri补与y补同号,“不够减”,+,+,x 与 y 异号,商值的确定,x补与 y补同号,正商,按原码上商,x补与 y补异号,负商,按反码上商,末位恒置“1”法,小 结,简 化 为,(同号),(异号),(异号),(同号),(2)商符的形成,除法过程中自然形成,x补和y补同号,x补y补,比较Ri补和y补,同号(够)“1”,异号(不够)“0”,原码上商,小数除法 第一次“不够”上“0”,正商,x补和y补异号,x补+y补,比较Ri补和y补,异号(够)“0”,同号(不够)“1”,反码上商,小数除法 第一次“不够”上“1”,负商,(3)新余数的形成,加减交替,例6.26,解:,x补=1.0101 y补=0.1101 y补=1.0011,1.0 1 0 1,0.1 1 0 1,1.0 0 1 1,0.1 1 0 1,0.1 1 0 1,0.0 0 0 0,异号做加法,1,0.0 0 1 0,同号上“1”,异号上“0”,+y补,异号上“0”,+y补,同号上“1”,末位恒置“1”,0,0,1,1,+y补,逻辑左移,(4)小结,补码除法共上商 n+1 次(末位恒置 1)第一次为商符,加 n 次 移 n 次,第一次商可判溢出,精度误差最大为 2-n,课堂练习与思考:,1在定点数一位原码除法中,()。A.为了避免溢出,被除数的绝对值要小于除数的绝对值;B.被除数的符号位和除数的符号位都要参加运算;C.每次加减法操作后,部分余数右移一位;D.符号位参加除法运算,并根据数值位的除法运算结果改变结果的符号位;,2原码加减交替除法,商符(),参加操作的数是()。A.原码 B.绝对值得补码 C.在形成商值得过程中自然形成 D.由两个符号位异或形成;,A,B,D,6.4.1 浮点加减法运算,计算X+Y=?求解:如:Ex=Ey S=2Ex(Mx+My)如:ExEy?,假设:,6.4 浮点四则运算,对阶,对阶(使得小数部分可以按位权值按位相加)大阶对小阶还是小阶对大阶?2110*(0.11000)+2100*(0.00110)大阶对小阶 2110*(0.11000)-2100*(11.000)11.000+0.00110?小阶对大阶 2100*(0.00110)-2110*(0.00001)0.00001+0.11000=0.11001 对阶过程应该是小阶对大阶 尾数右移,尾数运算,如:Ex=Ey S=2Ex(Mx+My),尾数进行加或减运算;,运算结果规格化,210*(0.11000)也可表示为 211*(0.01100)同一个浮点数的编码唯一,为提高精度,尾数不为零的时,要求其绝对值大于1/2,即尾数最高有效位为1,否则要以修改阶码的方式同时左右移小数点,使其变成这一要求的表示形式,这个过程称为浮点数的规格化 将运算结果右移以实现规格化表示称为向右规格化,右归 将运算结果左移以实现规格化表示称为向左规格化,左归,规格化形式,规格化数形式 0.1XXXX-0.1XXXX 补码规格化形式 00.1XXXX 11.0XXXX 补码非规格化数 00.0XXXX 11.1XXXX 01.XXXXX 10.XXXXX,00.0XXXX-00.1XXX0 左规 11.1XXXX-11.0XXX0 左规 01.XXXXX-00.1XXXX 右规 10.XXXXX-11.0XXXX 右规,连符号位一起移位,规格化方法,计算机在表示浮点数时,通常进行向左规格化处理 上溢的时候,右归 下溢的时候,左归,右归规则,非正常符号位,溢出,符号位进位舍去,正常结果,正常结果,非正常符号位,溢出,向左规格化,尾数左移一位,阶码减1,尾数左移两位,阶码减2,左归规则,尾数连同符号位 进位位右移一位,阶码加1,尾数连同符号位 进位位右移一位,阶码加1,向右规格化,规格化规则小结,运算结果产生溢出时,必须进行右归 如变形补码结果出现10.XX或者01.XXX 如运算结果出现0.0XXX或1.1XX必须左归 左归时最低数据有效位补0 右归时连同符号位进位位一起右移 左归时,阶码作减法,右归时,阶码作加法,舍入处理,右规后低位部分丢失了一位,这会对数产生一定的误差,0舍1入法,如被丢的最高数位为0,舍去,如为1,则将尾数末位加一,截去法,溢出处理,尾数上溢 右归 尾数下溢 左归 阶码正上溢|X|阶码负上溢|X|0,浮点数加减法,五个基本步骤 对阶 尾数求和 规格化(左规,右规)舍入(截去、0舍1入)检查溢出,例1 两浮点数x=21010.11011011,y=2111(-0.10101100)。假设尾数在计算机中以补码表示,可存储10位尾数,2位符号位,阶码以补码表示,双符号位,求x+y。,解:将x,y转换成浮点数据格式 x浮=00 101,00.11011011 Y浮=00 111,11.01010011+1 00 111,11.01010100 步骤1:对阶,阶差为Ex-Ey=Ex补+-Ey补-Ey补=11000111001 Ex-Ey001011100111110(000011)000102 0 Ex-Ey0 ExEy 小阶对大阶,X阶码加2 X尾数右移2位,解:将x,y转换成浮点数据格式 x浮=00 101,00.11011011 Y浮=00 111,11.01010011+1 00 111,11.01010100 步骤1:对阶,阶差为Ex-Ey=Ex补+-Ey补 Ex-Ey2 0 Ex-Ey0 ExEy 小阶对大阶,X阶码加2 X尾数右移2位 x浮=00 111,00.00110110(11)步骤2:尾数求和 X+Y浮=00 111,00.00110110(11)+00 111,11.01010100=00 111,11.10001010(11),步骤2:尾数求和 X+Y浮=00 111,00.00110110(11)+00 111,11.01010100=00 111,11.10001010(11)步骤3:计算结果规格化 X+Y浮 为非规格化数,左归一位,阶码减一,00110,11.00010101(1)步骤4:舍入处理 X+Y浮=00 110,11.00010110(0舍1如法)X+Y浮=00 110,11.00010101(截去法)步骤5:溢出判断 无溢出 X+Y浮=2110 x(-00.11101011),例2.两浮点数 x=2010.1101,y=210(-0.1010)。假设尾数在计算机中以补码表示,可存储6位尾数,2位符号位,阶码以补码表示,双符号位,采用0舍1入,求x+y。,解:将x,y转换成浮点数据格式 x浮=00 01,00.1101 Y浮=00 10,11.0101+1 00 10,11.0110 步骤1:对阶,阶差为Ex-Ey=Ex补+-Ey补-Ey补=110111110 Ex-Ey000111101111(000001)000011 0 Ex-Ey0 ExEy 小阶对大阶,X阶码加1 X尾数右移1位,解:将x,y转换成浮点数据格式 x浮=00 01,00.1101 Y浮=00 10,11.0101+1 00 10,11.0110 步骤1:对阶,阶差为Ex-Ey=

    注意事项

    本文(计算机的运算方法 (2).ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开