收藏 分销(赏)

第6章计算机的运算方法.ppt

上传人:xrp****65 文档编号:12550454 上传时间:2025-10-29 格式:PPT 页数:75 大小:6.29MB 下载积分:10 金币
下载 相关 举报
第6章计算机的运算方法.ppt_第1页
第1页 / 共75页
第6章计算机的运算方法.ppt_第2页
第2页 / 共75页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第章 计算机的运算方法,6.1 无符号数和有符号数,6.3 定点运算,6.2 数的定点表示和浮点表示,6.4 浮点四则运算,6.5 算术逻辑单元,本章要求,掌握数制的概念,特别是各种数制的相互转换;,掌握定点数的表示方法,包括原码、反码、补码和移码的计算过程;,掌握定点数的运算,包括原码定点数的加减运算、补码定点数的加减运算和定点数的乘除运算原理和过程,重点掌握溢出的判断方法;,掌握浮点数表示的概念和规格化过程,特别是IEEE754标准表示方法;,掌握浮点数规格化过程,特别是IEEE754标准表示方法;,掌握浮点数的加减运算原理和过程。,掌握ALU的结构。,2,十进制数串的表示方法,目前,大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有两种表示形式:,1.,字符串形式,2.,压缩的十进制数串形式,3,BCD,码,二,-,十进制码,(BCD-Binary Coded,Decmal,),又称二进制编码的十进制,.,用于二,-,十进制转换,.,(1),定义,:,用,4,位二进制码表示一位十进制码,.,最简单的是,8-4-2-1,码,.,也叫压缩,(,或组合,),的,BCD,码,.,例:,3579D=?BCD,码,3 5 7 9 0011010101111001,BCD,0011 0101 0111 1001,(2)BCD,码的运算规则,:,8-4-2-1,的,BCD,码只用,015,中的前,10,种状态,09,后,6,种是非法码,.,所以,当和超过,9,时,要作,+6,修正操作,.,4,两种格式的,BCD,码,(3),压缩,(,组合,),与非压缩,(,非组合,),的,BCD,码,压缩,(,组合,)BCD,码,:,用,8,位二进制码表示,2,位十进制码,.,例,89D 1000 1001BCD,只占,1,个字节,.,非压缩,(,非组合,)BCD,码,:,用,8,位二进制码表示,1,位十进制码,.,高,4,位无意义,.,例,89D 00001000 00001001BCD,占,2,个字节,.,5,进位计数制,如果进位数制采用,R,个基本符号,则,R,称为数制的基数。进位计数制按“逢,R,进位”的规则。,例如:,二进制(,B,),R=2,0,1,八进制(,O,),R=8,0,1,2,3,4,5,6,7,十进制(,D,),R=10,0,1,2,3,4,5,6,7,8,9,十六进制(,H,),R=16,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,6,进位记数法与进制转换,进位记数法,N,代表一个数值,r,是这个数制的基,(Radix,,该数制所用的符号个数,),i,表示这些符号排列的位序号,D,i,是位序号为,i,的位上的一个数码,是位号为,i,的位上的一个,1,代表的值,称为位权,r,i,表示对,m+k,位的值求累加和,N,=,i=-m,*,n-1,D,i,r,i,*,是第,i,位上的符号所代表的实际值,r,i,D,i,小数位数,m,整数位数,n,7,十进制转二进制,整数部分除,2,取余 小数部分乘,2,取整,2,1 1,2,2,2,5,2,1,0,1,1,0,1,0.625*2,1,0.25 *2,0,0.5 *2,1,0.0,除尽为止,求得位数满足要求为止,低,高,高,低,从二进制数求其十进制的值,逐位码权累加求和,8,二到八或十六进制转换,二到八,从小数点向左右,三位一分组,(,10 011 100.01),2,=(234.2),8,010,010,二到十六,从小数点向左右,四位一分组,(,1001 1100.01),2,=(9C.4),16,0100,说明:整数部分不足位数对转换无影响,,小数部分不足位数要补零凑足,,否则出错。,9,数值的对照,二进制,0,1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110,1111,八进制,0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,十进制,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,十六进制,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,数值数据的表示,符号数的表示,把二进制数的最高一位定义为符号位,符号位为,0,表示正数,符号位为,1,表示负数,这种在计算机中使用的、连同符号位一起数值化了的数,称为,机器数,。机器数所表示的真实的数值,称为,真值,。对于符号数,机器数常用的表示方法有原码、反码和补码三种。数,X,的原码记作,X,原,,反码记作,X,反,,补码记作,X,补,。,最高位表示符号,数值位用二进制绝对值表示的方法,称为,原码表示法,一个负数的原码符号位保持不变,其余位取反就是机器数的,反码表示法,。正数的反码与原码相同。,将负数的反码加1,则得到机器数的,补码表示,。正数的补码与原码相同。,11,整数表示,:Ns N1 N2,Nn,0,X,2,n,-X,0,X,-2,n,2,n,X,0,定义:,X,原,=,原码的定义,0,X,(2,n+1,)+X,0 X,0 Mod(2,n+1,),2,n,X,0,定义:,X,反,=,反码的定义,0,X,2,n+1,+X,0,X,-2,n,Mod 2,n+1,2n,X,0,定义:,X,补,=,模,2,补码的定义,12,定点小数表示,:Ns N1 N2,Nn,X,1-X,-1 X,0,0,X 1,定义:,X,原,=,原码的定义,X,(2-2,-n,)-X,-1 X,0 Mod(2-2,-n,),0,X 1,定义:,X,反,=,反码的定义,X,2,+X,-1,X,0 Mod,2,0,X 00010010,;这与事实明显不符。,故我们产生了移码,移码,:,又叫增码,一般用于整数,.,定义,:,在补码最高位加,1,即,X,移,=2,n,+X,-2,n,X 2,n,例,2.2.2:,真值 补码 移码,+3 0,011,1,011,0 0,000,1,000,补码与移码的,符号位相反,-3 1,101,0,101,数值位相同,注意:移码的,0,也是唯一的,18,计算机数据,-,非数值数据,逻辑型数据,字符型数据,ASCII,码,EBCDIC,码,字符串 汉字,逻辑型数据只有两个值:,真,和,假,,,正好可以用二进制码的两个符号分别表示,,例如,1,表示,真,则,0,表示,假,不必使用另外的编码规则。,对逻辑型数据可以执行逻辑的,与 或 非,等基本逻辑运算。,19,字符存储方式,ASCII,(American Standard Code for Information Interchange),字符编码,字符数,:128,英文字母,(52)+,专用符号,(34)+,十进制数,(10)+,控制字符,(32),位数,基本代码位,7,位,+1,位,0,所有小型和微型计算机都用,ASCII,码,.,20,b6 b5 b4 000 001 010 011 100 101 110 111,b3 b2 b1 b0,0000 NUL DLE SP 0 P ,p,0001 SOH DC1 !1 A Q a q,0010 STX DC2 “2 B R b r,0011 ETX DC3#3 C S c s,0100 EOT DC4$4 D T d t,0101 ENQ NAK%5 E U e u,0110 ACK SYN&6 F V f v,0111 BEL ETB 7 G W g w,1000 BS CAN (8 H X h x,1001 HT EM )9 I Y i y,1010 LF SUB *:J Z j z,1011 VT ESC +;K k ,1100 FF FS ,N n ,1111 SI US /?O _ o,ASCII,字符编码集,21,计算机数据,计算机数据:存储在计算机的存储设备上的数据就叫做计算机数据,分类:数值数据,非数值数据,数值数据:能够参加数值运算的数据。,定点数:小数点固定的数据,浮点数:小数点不固定的数据,非数值数据:文本、逻辑值等。,注意:无论是数值数据还是非数值数据,在计算机里都是按二进值数据存储的。,22,定点数的表示方法,定点表示:约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“,.”,来表示。通常将数据表示成纯小数或纯整数。,纯小数的表示范围为,0|,|,1,2,n,纯整数的表示范围为,0|,|,2,n,1,23,机器数的浮点表示,1.,机器数的浮点表示法,(Floating point),十进制数,N,1,=3.14159=0.314159*10,1,=0.0314159*10,2,二进制数,N,2,=0.011B=0.110B*2,-1,=0.011B*2,1,式中,E,为数,N,的,阶码,(exponent),M,为,尾数,是数,N,的有效数字,(mantissa),r,表示,基数,当,E,变化时,数,N,的尾数,M,中的小数点位置也随之向左或向右浮动,称数的浮点表示法,.,阶符 阶码 数符 尾 数,N=,M*r,E.,E,f,E,S,M,注意,:E,为整数,M,为纯小数,24,2.,常见机型的浮点数的表示,Pentium,微处理器支持的浮点格式,32,位,64,位,80,位,0,负数区,正数区,上溢,上溢,下溢,当浮点数阶码大于最大阶码时,称为“上溢”,当浮点数阶码小于最小阶码时,称为“下溢”,25,3.,浮点数的规格化,为了提高浮点数据的精度,其尾数必须为规格化数。,将非规格化数转变成规格化数的过程叫做规格化。,规格化过程:,当基数为,2,时,,尾数最高位为,1,的数为规格化数。规格化时,尾数左移一位,阶码减,1,(左规);尾数右移一位,阶码加,1,(右规)。,当基数为,4,时,,尾数最高位两位不全为,0,的数为规格化数。规格化时,尾数左移俩位,阶码减,1,(左规);尾数右移两位,阶码加,1,(右规)。,其他依次可推出基数为,2,n,的规格化过程,26,IEEE,标准,IEEE,标准:,阶码用移码,,,基为2,;,尾数用原码,阶码用移码,,,尾数用原码,表示浮点数的好处:,(1)机器零为浮点数的所有各位均为零;,(2)二浮点数比大小时,可不必区分阶码位,和数据位,可视同比二定点小数一样对待,E,f,E,S,M,阶符 阶码 数符 尾 数,27,浮点数与定点数的比较,(1),当字长一定时,浮点表示的数值范围比定点大,且阶码部分占的位数越多,表示数的范围越大,.,举例,:8,位机,(,含符号位,),阶码,尾数,定点,:,S,f.,XXXXXXX,浮点,:,S,f,J,f,XX,XXXX,定点,:0.00000000.1111111 0127/128,小,浮点,:2,-11,*0.0001 2,11,*0.1111 1/1287.5,大,(2),浮点数运算分阶码和尾数两部分,步骤复杂,速度较慢,.,(3),浮点数判溢出比定点容易,只要判断规格化尾数的阶码,而定点数要判数值本身,.,(4),当浮点数为规格化数的时候,其精度远比定点数高,28,定点运算,-,加法与减法运算,X,Y,补,=X,补,Y,补,X+Y,补,=X,补,+Y,补,,X-Y,补,=X,补,+-Y,补,求,-Y,补,可 通过对,Y,补逐位取反,再在最低位加,1,完成,溢出判断,同一件事实,三种不同的叙述方式:,(1),正,+,正 得负 或 负,+,负 得正,(2),采用,双符号位法,,这称为“变形补码”或“模,4,补码”,x,补,=4+x (mod 4),x,补,+y,补,=x+y,补,(mod 4),结论:,a.,当以模,4,补码运算,运算结果的两符号位相异时,表示溢出;相同时表示未溢出,b.,模,4,补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。,(3),采用,单符号位法,,溢出逻辑表达式为,其中,Cf,为符号位产生的进位,,C,0,为最高有效位产生的进位。,29,补码加减法运算实例,X=0.1011 Y=-0.0101,模,4,补码(双符号位),X,补,=00 1011,Y,补,=11 1011,-Y,补,=00 0101,00 1011,+11 1011,1,00 0110,00 1011,+00 0101,01 0110,X+Y,,去掉最高位进位,X-Y,,结果溢出,30,定点运算,-,移位运算,移位运算:移位运算又叫做移位操作。对于计算机使用的二进制编码数据对于小数点作,n,位左移或右移时,实际就是对该数据乘以或除以,2,n,(n=1,2,n),移位运算的应用:当我们在计算机里进行乘除法运算的时候,可以采用加法和移位运算进行实现,(1),逻辑移位:无符号数的移位叫做逻辑移位。逻辑移位的规则,逻辑左移时,高位移出,低位添,0,;逻辑右移时,低位移出,高位添,0,。,(2),算术移位:,码,制,添补代码,正数,原码、补码、反码,0,负数,原码,0,补码,左移添,0,右移添,1,反码,1,31,例 设机器数字长为,8,位(含,1,位符号位),若,A=+26,或,-26,,写出三种机器数左、右移一位和两位后的表示形式及对应真值,并分析结果的正确性。解:(,1,),A=+26=(+11010)2,则,A,原,=A,补,=A,反,=0,,,0011010,移位结果如表所示,移位操作,机器数,对应的真值,A,原,=A,补,=A,反,移位前,0,,,0011010,+26,左移一位,0,,,0110100,+52,左移两位,0,,,1101000,+104,右移一位,0,,,0001101,+13,右移两位,0,,,0000110,+6,表 对,A=+26,移位后的结果,定点运算,-,移位运算,32,定点运算,-,移位运算,可见,对于正数,三种机器数移位后符号位均不变,左移时最高数位丢,1,,结果出错;右移时最低数位丢,1,,影响精度。,(,2,),A=-26=(-11010),2,移位操作,机器数,对应的真值,移位前,原码,1,,,0011010,-26,左移一位,1,,,011010,0,-52,左移两位,1,,,11010,00,-104,右移一位,1,,,0,001101,-13,右移两位,1,,,00,00110,-6,移位前,补码,1,,,1100110,-26,左移一位,1,,,100110,0,-52,左移两位,1,,,00110,00,-104,右移一位,1,,,1,110011,-13,右移两位,1,,,11,11001,-6,移位前,反码,1,,,1100101,-26,左移一位,1,,,100101,1,-52,左移两位,1,,,00101,11,-104,右移一位,1,,,1,110010,-13,右移两位,1,,,11,11001,-6,33,一般乘法运算,常见的乘法运算规则:,A=0.1101 B=0.1011,求,A*B,0.1101,*0.1011,1101,1101,0000,1101,0.10001111,此运算规则存在的困难:,将四个位积一次相加,机器难于实现;,结果位数增加一倍,造成器材的浪费和运算时间的增加.,34,乘法运算规则,由推理可得出式子:,A*B=A*0.1011=2,-1,A+2,-1,0*A+2,-1,(A+2,-1,(A+0),归纳:,乘法运算可用移位和加法来实现,当两个四位数相乘,总共需做四次加法和四次移位.,由乘数的末位值确定被乘数是否与原部分积相加,然后右移一位,形成新的部分积;同时,乘积也右移一位,由次低位作新的末位,空出最高位放部分积的最低位,每次做加法时,被乘数仅仅与原部分积的高位相加,其低位被移至乘数所空出的高位位置,35,原码一位乘法,算法描述,设X,原,=X,s,.X,n-1,X,n-2,X,i,X,1,X,0,=X,s,.X,v,Y,原,=Y,s,.Y,n-1,Y,n-2,Y,i,Y,1,Y,0,=Y,s,.Y,v,则乘积Z,原,=Z,s,.Z,v,=(X,s,Y,s,).(X,v,Y,v,),运算规则,(1)符号单独处理,同号为正,异号为负;,(2)令乘数的最低位为判断位,若为,1,,加被乘数,若为,0,,加,0,;,(3)累加后的部分积右移一位。,定点乘法及除法运算,36,原码一位乘法,例题 已知X=-0.1011,Y=0.1001,求X,Y,原,解:X,原,=1.1011,Y,原,=0.1001,|X|=0.1011,|Y|=0.1001,按原码一位乘法运算规则,求X,Y,原,的数值部分。,|X|,|Y|=0.01100011,而Z,s,=X,s,Y,s,=1 0=1,最后求得X,Y,原,=1.01100011,37,例题之原码一位乘法运算过程,+),0,0.0 0 0 0,+),0,0.0 0 0 0,+),0,0.1 0 1 1,+),0,0.1 0 1 1,0,0.0 0 0 1,0,0.0 1 1 0,0,0.1 1 0 0,0,0.0 0 1 0,0,0.0 0 1 0,0,0.0 1 0 1,0,0.0 1 0 1,0,0.1 0 1 1,0,0.0 0 0 0,右移一位得部分积,Z,4,,乘数同时右移一位,右移一位得部分积,Z,3,,乘数同时右移一位,右移一位得部分积,Z,2,,乘数同时右移一位,右移一位得部分积,Z,1,,乘数同时右移一位,Y,1,=1,,加,|X|,Y,2,=0,,加,0,Y,3,=0,,加,0,Y,4,=1,,加,|X|,设部分积初值,Z,0,=0,操作说明,乘 数,部 分 积,1 0 0 1,1 1 0 0,1 1 1 0,0 1 1 1,0 0 1 1,低 位 积,高 位 积,例原码一位乘法运算过程,38,原码两位乘法,原码两位乘法运算规则,参加运算的操作数取其绝对值;,符号位单独处理,欠账触发器,C,j,初始值为,0,;,根据乘数的最低两位,Y,n-1,Y,n,和欠账触发器,C,j,的值决定每次应执行的操作,见下表;,-|X|,通过,+|X|,变补,实现,所以右移按补码规则进行;,当乘数的数值位为,n,位(不连符号位),应作,n/2,次累加和移位,如有欠账,再作一次加法。,Y,n-1,Y,n,C,j,操作,00,0,Z+0,右移,2,位,,0,C,j,00,1,Z+|X|,右移,2,位,,0,C,j,01,0,Z+|X|,右移,2,位,,0,C,j,01,1,Z+2|X|,右移,2,位,,0,C,j,10,0,Z+2|X|,右移,2,位,,0,C,j,10,1,Z-|X|,右移,2,位,,1,C,j,11,0,Z-|X|,右移,2,位,,1,C,j,11,1,Z+0,右移,2,位,,1,C,j,39,其中的,+3x,的运算,用普通的加法器不能一次完成。如果分为两次执行,则又降低了速度。我们可将,3x,当做(,4x-x,)来处理,本次操作执行,-x,,用一个欠账触发器,Cj,记下欠账,下一次操作时再补上,+4x,。由于本次累加后部分积要右移两位,从相对关系来看,相当于被乘数左移了两位,因而下一次实际上只需执行,+x,,就等于前次完成了,+4x,操作,下面通过一个实例说明这一关系。设,A=0.0001 X=0.0101,2,-2,A+X,为:,+),001,.,0,1,0,0,00,0.0 1 0 1,0 1,001,.,0,1,0,1,00,0.0 0 0,1,A,4X,2,A,+),00,0.0,1,0,1,00,0.0,1,0,1 0 1,00,0.0 0,0,0,0 1,00,0.0,0,0 1,X,2,2,-2,(A+4X),为,:,40,由于运算有,+2|X|,,累加时产生的进位可能侵占符号位,所以被乘数和部分积应取三符号位。乘数需凑足偶数位,以便于两位一组的运算,由于最后可能会有欠账,故乘数应取双符号位,以便最后一次能处理前面留下的欠账。例 设,x=0.111111,,,y=-0.111001,,用原码两位乘法求,xy,原。解:,x*=0.111111,,,-x*=1.000001,2x*=1.111110,,,y*=0.111001,,步骤如下表所示,41,+),0 0 1,1 1 1 1 1 0,0 0 0,0 0 1 1 1 1,0 0 0,1 1 1 1 1 1,+),0 0 0,1 1 1 1 1 1,0 0 0,0 0 0 0 0 0,操作说明,标志位,C,j,乘 数,则Z+2X,*,Y,j+1,Y,j,C,j,=100,右移两位,置,C,j,=0,Y,j+1,Y,j,C,j,=010,则Z+X,*,初始化,Z=0,,,C,j,=0,数值部分,Y,高 位 积,低 位 积,数值位,符号位,部 分 积,0 0 1 1 1 0 0 1,0,1 1 0 0 1 1 1 0,0,+),1 1 1,0 0 0 0 0 1,0 0 0,1 0 0 0 1 1,0 1 0,0 0 1 1 0 1,0 1 1 1 0 0 1 1,0,+),0 0 0,1 1 1 1 1 1,1 1 1,1 1 1 0 0 1,0 0 0,1 1 1 0 0 0,1 1 1,1 0 0 1 0 0,0 0 0 1 1 1 0 0,1,0 0 0 1 1 1 0 0,0,则Z+-X,*,补,Y,j+1,Y,j,C,j,=110,右移两位,置,C,j,=0,置,C,j,=0,则Z+X,*,Y,j+1,Y,j,C,j,=001,右移两位,置,C,j,=1,例题之原码两位乘法运算过程,42,定点乘法,-,补码一位乘法,补码一位乘法,-,校正法,将,x,补,和,y,补,按原码规则运算,所得结果根据情况再加以校正,从而得到,x,y,补,。下面分两种情况讨论:,被乘数,x,的符号任意,,乘数,y,为正数,x,补,y,补,=x,y,补,(mod 2),当乘数,y0,时,不管被乘数,x,的符号如何都可直接按原码乘法运算,只是移位时按补码规则进行。,例,x,补,=1.0101,,,y,补,=0.1101,,求,x,y,补,43,校正法,(y0)-,例题之解题步骤,+),11,.0,1,0,1,+),0,0.0 0 0 0,+),11,.,0,1,0,1,+),11,.,0,1,0,1,11,.,1,0 0 1,11,.0 1 1,1,1,0.1 1,1,0,11,.0 0 1 0,11,.,1,1,0,1,11,.,1,0,1,0,11,.,1,0,1,0,11,.,0,1,0,1,0,0.0 0 0 0,右移一位得部分积,Z,4,,乘数同时右移一位,右移一位得部分积,Z,3,,乘数同时右移一位,右移一位得部分积,Z,2,,乘数同时右移一位,右移一位得部分积,Z,1,,乘数同时右移一位,Y,2,=,1,,加,X,补,Y,3,=0,,加,0,Y,4,=1,加,X,补,设部分积初值,Z,0,=0,操作说明,乘 数,部 分 积,1,1,0 1,1 1,1,0,0,1 1,1,0,0,1 1,0 0,0,1,低 位 积,高 位 积,Y,1,=,1,,加,X,补,所以,x,y,补,=1.01110001,44,被乘数,x,的符号任意,,乘数,y,为负数,x,补,y,补,=x,补,(0.y,1,y,2,y,n,)+-x,补,其中,y,补,=1.y,1,y,2,y,n,,,当乘数,y0,时,把乘数的补码,y,补,去掉符号位,当成一个正数与,x,补,相乘,然后加上,-x,补,校正(相当于乘以,y,的符号位),也称,校正法,。,例,x,补,=0.1101,,,y,补,=1.0101,,求,x,y,补,解:,-x,补,=1.0011,,,|,y,补,|=0.0101C,,,0A,45,所以,x,y,补,=1.01110001,校正法,(y0,时,商上“,1”,,做,2R,i,-|y|,的运算。,R,i,0,时,商上“,0”,,做,2R,i,+|y|,的运算。,当第n+1步余数为负时,需加上|Y|得到第n+1步正确的余数(余数与被除数同号)。,52,操作说明,商,余数为负,上商“,0”,1,位,+y*,(,加除数,),被除数(余数),0.0,0,0,0,0,0,1,0,1,1,0,1,1 0,余数为正,上商“,1”,1,位,+-y*,补,(,减除数,),余数为正,上商“,1”,0,0,1,0,1,1,0,1,1 0,+),0,.1,1,0,1,1,.1,1,0,0,1,.,1 1,1,0,+),1,.,0,0,1 1,0,.,1,0,1,1,+),1,.,0 0 1,1,1,.0,0,1,0,0,.1,0,0,1,+),1,.0,0,1 1,0,.,1,0 1,0,1,.,1,1,0,1,0,.0,1,0 1,1,.1,0,1,0,+),0,.1,1,0 1,0,.0,1,1 1,+-y*,补,(减除数),余数为正,上商“,1”,1,位,+-y*|,补,(,减除数,),余数为负,上商“,0”,1,位,+y*,(,加除数,),0,1,1 0 1,例:,X=-0.1011,Y=0.1101,求,XY,原,X,原,=1.1011,X*=0.1011Y,原,=0.1101,Y*=0.1101,-Y*,补,=1.0011,商的符号位为,X Y=1 0=1,53,补码加减交替法,补码除法的商也是用补码表示的,上商的规则是:如果,X,补,和,Y,补,同号,则商为正数,上商规则与原码除法相同,即够减时上商“,1”,,不够减时上商“,0”,;如果,X,补,和,Y,补,异号,则商为负数,上商规则与同号时相反,即够减时上商“,0”,,不够减时上商“,1”,。,X,补,和,Y,补,第一次操作,R,i,补,与,Y,补,上商,求新余数,R,i+1,补,的操作,同号,X,补,-,Y,补,同号,,够减,1,R,i+1,补,=2,R,i,补,-,Y,补,异号,,不够减,0,R,i+1,补,=2,R,i,补,+,Y,补,异号,X,补,+,Y,补,异号,,够减,0,R,i+1,补,=2,R,i,补,+,Y,补,同号,,不够减,1,R,i+1,补,=2,R,i,补,-,Y,补,54,例:,X=0.1000,Y=-0.1010,求,XYX,补,=0.1000 Y,补,=1.0110,|Y|=0.1101,-Y,补,=0.1010,操作说明,商,被除数(余数),0.0,0,0,0,0.0 0 0 1,0.0 0,1 0,0.0,1,0 0,0.1,0,0 1,末位恒置,1,+),00,.1,0,1,0,11,.1,1,0,0,11,.,1 1,1,0,+),11,.,0,1,1,0,00,.,1,0 0,0,+),11,.,0,1,1,0,00,.1,1,0,0,00,.0,1,1,0,+),11,.0,1,1,0,00,.,0,1,0 0,11,.,1,0 1,0,00,.0,0,1,0,11,.0,1,0,0,+),00,.1,0,1 0,11,.1,1,1 0,X,补,、,Y,补,异号,+Y,补,R,i,补,与,Y,补,异号,商,0,1,位,+Y,补,R,i,补,与,Y,补,同号,商,1,1,位,+-Y,补,1.,0,0 1 1,R,i,补,与,Y,补,异号,商,0,1,位,+Y,补,R,i,补,与,Y,补,同号,商,1,1,位,+-Y,补,55,乘法运算总结,乘法,符号位,累加次数,移位,备注,参与运算,部分积,乘数,方向,次数,每次,移位,原码一位乘法,否,2,0,n,右,n,1,补码一位乘法,是,3,1,n+1,右,n,1,原码两位乘法,否,2,2,(,n,凑足偶数),n/2,或,n/2+1,右,n/2,2,有欠账时多做一次加,补码两位乘法,是,3,2,(,n,凑足偶数),n/2+1,右,n/2,2,3,1,(,n,凑足偶数),(n+1)/2,右,(n+1)/2,2,最后一次移一位,除法,符号位参加运算,加减次数,移位,备注,方向,次数,原码加减交替,否,n+1/,n+2,左,n,若最后余数为负,最后需恢复余数,补码加减交替,是,n+1,左,n,末位恒置,1,除法运算总结,56,浮点数算术运算,(,1,)对阶操作,求阶差:,E=,E,X,-E,Y,,,使阶码小的数的尾数右移,E,位,,其阶码取大的阶码值;,(,2,)尾数加减;,(,3,)规格化处理;,(,4,)舍入操作,可能带来又一次规格化;,(,5,)判结果的正确性,即检查阶码上下溢出。,E,X,X=M,X,*2,E,Y,Y=M,Y,*2,浮点数加减运算,57,浮点数加运算举例,X=2,010,*0.11011011,,,Y=2,100,*,(,-0.10101100,),写出,X,、,Y,的正确的浮点数表示:,阶码用,4,位移码,尾数用,9,位原码,(含符号位),(含符号位),X,浮,=,0,1010,11011011,Y,浮,=,1,1100,10101100,为运算方便,尾数写成模,4,补码形式:,M,X,补,=,00 11011011,M,Y,补,=,11 01010100,58,浮点数加运算举例,X=2,010,*0.11011011,,,Y=2,100,*,(,-0.10101100,),(,1,)计算阶差:,E=,E,X,-E,Y,=E,X,+(-E,Y,),=1 010+0 100=0 110,注意:,阶码计算结果的符号位在此变了一次反,,结果为,-2,的 移码,,是,X,的阶码值小,使其取,Y,的阶码值,1100,(即,+4,);,因此,修改,M,X,补,=00 00110110,11,(即右移,2,位),(,2,)尾数求和:,00 00110110,11,+,11 01010100,11 10001010,11,59,浮点数加运算举例,X=2,010,*0.11011011,,,Y=2,100,*,(,-0.10101100,),(,3,)规格化处理:,相加,结果的符号位与数值的最高位同值,应执行一次左规操作,故得,M,X,补,=1 00010101,1,,,E,X,移,=1 011,(,4,)舍入处理:,采用,0,舍,1,入方案,要入,在最低位加,1,11 00010101,+,00 0000000,1,11 00010110,(其原码表示为,1 11101010,),(,5,)检查溢出否:,和的阶码为,1011,,不溢出,计算后的,X,移,=,1,1011,11101010,,即,2,3,*(-0.11101010),60,浮点数算术运算,(1),阶码加、减:,乘:,E,X,+E,Y,,,除:,E,X,-E,Y,(2),尾数乘、除:,乘:,M,X,*M,Y,,,除:,M,X,/M,Y,(3),规格化处理;,(4),舍入操作,可能带来又一次规格化;,(5),判结果的正确性,即检查阶码上下溢出。,E,X,X=M,X,*2,E,Y,Y=M,Y,*2,浮点数乘除运算,61,浮点数乘法运算举例,X=2,010,*0.1011,,,Y=2,100,*,(,-0.1101,),写出,X,、,Y,的正确的浮点数表示:,阶码用,4,位移码,尾数用,9,位原码,(含符号位),(含符号位),X,浮,=,0,1010,1011,Y,浮,=,1,1100,1101,62,浮点数乘运算举例,X=2,010,*0.1011,,,Y=2,100,*,(,-0.1101,),(,1,)阶码相加:,积的阶码,=,E,X,+E,Y,=1 010+1 100=1 110,注意:,计算结果的阶码符号位在此变了一次反,,结果为,+6,的 移码,(,2,)尾数相乘:,M,X,*M,Y,=0.1011*(-0.1101),=-0.10001111,(3)(4)(5),已是规格化数,不必舍入,也不溢出,最众乘积,M,X,移,=1 1110 10001111,,,即,2,6,*,(,-0.10001111,),63,浮点数除运算举例,X=2,010,*0.1011,,,Y=2,100,*,(,-0.1101,),(,1,)阶码相减:,积的阶码,=,E,X,-E,Y,=,E,X,+(-E,Y,),=1 010+0 100=0 110,注意:,计算结果的阶码符号位在此变了一次反,,为移码,-2,(,2,)尾数相除:,M,X,/M,Y,=0.1011/(-0.1101),=-0.1101,(,3,)(,4,)(,5,)已是规格化数,不必舍入,也不溢出,最众的商,M,X,移,=1 0110 1101,,,即,2,-2,*,(,-0.1101,),64,定点运算器的,功能,与,组成,(1)ALU的功能,运算器是CPU的重要组成部分,由ALU、寄存器组、执行部件和控制电路等部分构成。算术逻辑单元是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分。由与或门等构成的算术逻辑单元,主要功能是进行二进制的算术运算和逻辑运算。,(2)ALU的结构,ALU,是一种功能较强的组合逻辑电路,如下图所示,K,i,取值不同得到的F,i,也不同。ALU的基本逻辑结构是超前进位加法器,它通过改变加法器的进位产生函数G和进位传递函数P来获取多种运算能力。,图 ALU的基本结构,65,基本的二进制加法,/,减法器,全加器逻辑图,C,i,A,i,B,i,S,i,C,i+1,FA,C,i,A,i,B,i,S,i,C,i+1,输 出,输 入,0 1,1 0,1 0,0 0,0 1 1,0 1 0,0 0 1,0 0 0,1 0,1 0 0,0 1,0 1,1 1 0,1 0 1,1 1,1 1 1,表,2-2,全加器真值表,全加器的表达式为:,S,i,=A,i,B,i,C,i,C,i+1,=,A,i,B,i,+,B,i,C,i,+,A,i,C,i,66,基本的二进制加法,/,减法器,利用全加器可以实现两数的和或差,1,、串行加法:从低位开始,每步只完成一位运算的加法。,串行加法器只需要一个全加器和一个进位触发器,计算两个,n,位数之和,需要,n+1,步(,1,位符号位),或,n+2,步(,2,位符号位)运算。,高位运算只有等低位运算完成后才能进行,速度较慢,2,、并行加法器:可在同一时刻完成,n,位数的运算。,若采用变形补码表示一个机器数,则符号位需,2,位,这时需要,n+2,个加法器。,运算速度比串行进位加法器高很多,这是用足够多的硬件设备换来的,67,1.并行加法器,=,A,i,B,i,+(,A,i,+B,i,),C,i-,1,d,i,=A,i,B,i,本地进位,t,i,=A,i,+B,i,传送条件,则,C,i,=,d,i,+,t,i,C,i,-1,S,i,=,A,i,B,i,C,i,-1,+,A,i,B,i,C,i,-1,+,A,i,B,i,C,i,-1,+,A,i,B,i,C,i,-1,C,i,=A,i,B,i,C,i-1,+A,i,B,i,C,i-,1,+A,i,B,i,C,i-,1,+A,i,B,i,C,i-,1,FA,n,FA,n,-1,FA,1,FA,0,FA,n,-2,C,n,S,n,C,n,-1,S,n,-1,C,n,-2,S,n,-2,C,1,S,1,C,0,S,0,C,-1,A,0,B,0,A,1,B,1,A,n,-2,B,n,-2,A,n,-1,B,n,-1,A,n,B,n,2.串行进位链,进位链,传送进位的电路,串行进位链,进位串行传送,以 4 位全加器为例,每一位的进位表达式为,C,0,=,d,0,+,t,0,C,-1,C,1,=,d,1,+,t,1,C,0,C,2,=,d,2,+,t,2,C,1,C,3,=,d,3,+,t,3,C,2,=,d,0,t,0,C,-1,4,位,全加器产生进位的全部时间为,8,t,y,n,位全加器产生进位的全部时间为,2,nt,y,&,&,&,&,&,&,&,&,C,3,t,3,t,2,t,1,t,0,C,2,C,1,C,0,C,-1,d,3,d,2,d
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服