资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2.1,数据与文字的表示方法,2.2,定点加法、减法运算,2.3,定点乘法运算,2.4,定点除法运算,2.5,定点运算器的组成,2.6,浮点运算方法和浮点运算器,第二章 运算方法和运算器,1,计算机中使用的数据可分成两大类:,符号数据,:,非数字符号的表示(,ASCII,、汉字、图形等),数值数据,:,数字数据的表示方式(定点、浮点),计算机数字和字符在计算机中的表示方法应有利于数据的存储、加工,(,处理,),、传送;,编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便),2.1,数据与文字的表示方法,2,通常的两种数据表示方式:,定点表示,浮点表示,2.1.1,数据格式,3,1.,定点表示法,定点表示法:小数点的位置固定不变,(,1,)常用的定点表示,A,、,小数点固定于最高位之前,(纯小数),表数范围:,-1, X + 1,B,、,小数点固定于最低位之后,(纯整数),表数范围:,- (,2,n, 1), |X| +(2,n, 1),符号,.,x,1,x,2,x,n,x,0,量值(尾数),x,1,x,2,x,n,.,x,0,符号,量值(尾数),4,纯小数的表示范围,x=,0,.00.0,x=,1,.00.0,x=0,正,0,和负,0,都是,0,x=,0,.11.1,x=1-2,-n,最大正数,x=,0,.00.01,x=2,-n,最接近,0,的正数,x=,1,.00.01,x=-2,-n,最接近,0,的负数,x=,1,.11.1,x=-(1-2,-n,),最小负数,5,定点表示法的特点,定点数表示数的范围受字长限制,表示数的范围有限,;,定点表示的精度有限,机器中,常用定点纯整数表示,6,(,2,)定点表示优缺点,优点:运算简单、速度快、硬件简单,缺点:表数范围窄,运算精度低,7,浮点表示法:小数点的位置可以在一定范围内浮动,十进制的科学计数法,任何数都可记作,N=10,E,M,。,(,1,),浮点数的构成,N=R,E,M,其中:,M,尾数,包括数符和尾数,表示数的正负和精度,E,阶码,包括阶符和阶码,指明小数点的实际位置,决定数值范围。(,决定了小数的位置,),R,基数,通常为,2,、,8,或,16,,不需要表示出来。,E,1,E,2,E,m,E,s,M,1,M,2,M,n,M,s,阶码,阶符,尾数,数符,2.,浮点表示法,8,浮点数的规格化表示:,(1.75),10,= 1.11 2,0,= 0.111 2,1,= 0.0111 2,2,(,规格化表示,),9,E,1,E,2,E,m,M,1,M,2,M,n,M,s,阶码,尾数,数符,浮点数的,IEEE754,标准:,(阶码采用隐含方式,采用移码表示),E=,e,+,偏移量 在,32,位浮点数中,偏移量,=127,在,64,位浮点数中,偏移量,=1023,实际的阶码,10,基数,R=2,,基数固定,采用隐含方式来表示它。,32,位的浮点数:,S,数的符号位,1,位,在最高位,“,0”,表示正数,“,1”,表示负数。,M,是尾数,,23,位,在低位部分,采用纯小数表示,E,是阶码,,8,位,采用移码表示。移码比较大小方便。,11,规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是唯一的。,尾数域最左位,(,最高有效位,),总是,1,, 故这一位经常不予存储,而认为隐藏在小数点的左边。,采用这种方式时,将浮点数的指数真值,e,变成阶码,E,时,应将指数,e,加上一个固定的偏移值。,127(01111111),,即,E=e+127,。,一个规格化的,32,位浮点数,x,的真值表示为,x=(-1),S,(1.M)2,E-127, e=E-127,12,64,位的浮点数中符号位,1,位,阶码域,11,位,尾数域,52,位,指数偏移值是,1023,。因此规格化的,64,位浮点数,x,的真值为:,x=(-1),S,(1.M)2,E-1023, e=E-1023,13,真值,x,为零表示:,当阶码,E,为全,0,且尾数,M,也为全,0,时的值,结合符号位,S,为,0,或,1,,有正零和负零之分。,00000000,1,00000000000000000000000,阶码,阶符,尾数,00000000,0,00000000000000000000000,阶码,阶符,尾数,正,0,负,0,14,真值,x,为无穷大表示:,当阶码,E,为全,1,且尾数,M,为全,0,时,结合符号位,S,为,0,或,1,,也有,+,和,-,之分。,11111111,1,00000000000000000000000,阶码,阶符,尾数,11111111,0,00000000000000000000000,阶码,阶符,尾数,负,正,15,在,32,位浮点数表示中,除去,E,用全,0,和全,1,(,255,10,)表示零和无穷大的特殊情况,指数的偏移值不选,128,(,10000000,),而选,127,(,01111111,)。对于规格化浮点数,,E,的范围变为,1,到,254,,真正的指数值,e,则为,(-126,到,+127),。因此,32,位浮点数表示的绝对值的范围是,10,-38,10,38,(以,10,的幂表示)。,16,浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示。,单片机中多采用定点表示。,17,如何实现规格化?,若,| M |,2,,,将尾数右移,每右移一位,阶码加,1,,称为向右规格化,右规;,若,| M |,1,,,将尾数左移,每左移一位,阶码减,1,,称为向左规格化,左规。,注意:,尾数为零的浮点数不能规格化。,(,2,)浮点数表示的优缺点,优点:表数范围宽,运算精度高。,缺点:运算复杂,硬件复杂。,18,例,1,若浮点数,的,754,标准存储格式为,(41360000),16,,求其浮点数的十进制数值。,解,:,将十六进制数展开,得二进制数格式为,指数,e,阶码,127,10000010,01111111,00000011=(3),10,尾数,1.,M,1.011 0110 0000 0000 0000 0000,1.011011,(,1),s,1.,M,2,e,(1.011011)2,3,1011.011,(11.375),10,19,例,2,将,(20.59375),10,转换成,754,标准的,32,位浮点数的二进制存储格式。,解,:,分别将整数和分数部分转换成二进制数:,20.59375,10100.10011,移动小数点,使其在第,1,,,2,位之间,10100.10011,1.0100100112,4,e,4,得到:,S,0,,,E,4,127,131,,,M,010010011,得到,32,位浮点数的二进制存储格式为:,0100 0001 1010 0100 1100 0000,0000,0000,(41A4C000),16,20,3.,十进制数串的表示方法(在计算机内),字符串形式:,每个十进制码或符号位占用一个字节。,压缩的十进制数串形式:,一个字节存放两个十进制数位,即一个数字位或符号位占半个字节,符号位用四位二进制编码中六个冗余状态中其中一个状态表示。,如:针对,+123,数串,两种表示方式分别为:,字符串形式,:,或者:,ASC(1),ASC(+),ASC(2),ASC(3),ASC(2),ASC(3),ASC(1),ASC(+),压缩的十进制,数串形式,:,BCD,码,0001,1100,0011,0010,21,(二进制数值数据的编码方法),主要解决:,如何在计算机内表示正数、零、负数,并且尽可能地简化对它们实现算术运算规则。,常见的编码方法:,原码、补码、反码、移码,几个名词:,机器数:,计算机内部运用编码方法表示的数。,真 值:,机器数所代表的实际值。,表示方法:,3,三 叁, ,2.1.2,数的机器码表示,22,+52 = +0110100 ,0,0110100,符号位,数值位,-52 = -0110100 ,1,0110100,真值,机器数,23,有正,0,和负,0,之分,范围,-(2,n,-1),+(2,n,-1),例:,x = +11001110 , y = -11001110,x,原,=011001110 , y,原,=111001110,X,原,=,X 0,X,2,n,2,n,-X= 2,n,+,|X|,-2,n,X,0,定点整数,x,n,x,n-1,x,1,x,0,的原码(,x,n,为符号位),:,1.,原码表示法,(1),原码定义,24,(,2,)原码表示的优缺点及其应用,优点:与真值之间转换方便、直观,便于乘除运算。,缺点:加减运算不方便。,应用:乘除运算。,25,2.,补码表示法,(1),模:,一个计数器的计数容量。记为,mod,例如:时钟的模为,12,,,n,位二进制计数器的模为,2,n,12,6,3,9,1,2,11,10,7,8,5,4,12,6,3,9,1,2,11,10,7,8,5,4,错误时间,正确时间,调整方法:,9,-3,或者,9,+9,(正转或逆转),(mod 12),即,-3,=,12-3,=,+9,(,mod 12,),26,补码定义:正数的补码就是正数的本身,负数的补码是原负数加上模。,计算机运算受字长限制,属于有模运算。,X,补,=,X 0,X,X0,负整数,0X,-2,n,负数的范围比正数范围大,即多表示一个数,-2,n,。,当,X=-2,n,时,它的补码为:,X,补,= -2,n,补,= 2,n+1,-2,n,= 2,n,= 1000,0,+1,-1,+2,n,-1,-2,n,-1,000,100,0001,1001,0,+1,-1,+2,n,-1,-2,n,-1,0111,11,11,000,0001,11,11,0111,1001,1000,-2,n,原码,补码,真值,真值,30,(4),补码的求法,当,-2,n,X,0,时,,X,的补码是:,符号位为,1,,数值位是其真值,X,的数值位取反加,1,。,可由,X,的原码求得补码:,X,补,等于,X,原,除符号位外求反加,1,。,反过来可由,X,的补码求得原码:,X,原,等于,X,补,除符号位外求反加,1,。,X,原,=X,补,补,31,(,5,)补码表示的优缺点及其应用,优点:加减运算方便。,缺点:与真值之间转换不直观。,应用:加减运算,原码乘法求补。,32,3.,反码表示法,(,1,),反码定义:,定点整数的反码:,X,反,=,X 0,X, 2,n,(2,n+1,-1)+X -2,n,X, 0,33,例如:,X= + 1001,则,X,反,=,0,1001,Y= - 1001,则,Y,反,=,1,0110,正数的反码:与原码相同。,负数的反码:,在其原码的基础上,符号位为,1,,其余各位对应取反。,34,(,2,)反码的主要性质,符号位反映真值的正负,0,正,1 ,负,0,的反码有两种形式,+0,原,=,0.,000,-0,原,=,1.,111,35,4.,移码表示法,(,1,),移码定义:,对于,n,位定点整数,其移码为:,例,1 x=,+,1011111,原码为,0,1011111,补码为,0,1011111,反码为,0,1011111,移码为,1,1011111,X,移,=,2,n,+ X -2,n,X,2,n,例,2 x=,-,1011111,原码为,1,1011111,补码为,1,0100001,反码为,1,0100000,移码为,0,0100001,36,(,2,)移码与补码的关系:,移码和补码尾数相同,符号位相反。即,若,X,补,=X,S,X,n-1,X,n-2,X,1,X,0,,,则,X,移,=,X,S,X,n-1,X,n-2,X,1,X,0,X=+1001 X,移,=11001 X,补,=01001,Y=-1001 Y,移,=00111 X,补,=10111,37,上面所述的四种表示方式中,移码主要用于表示浮点数的阶码。下面对其它三种编码方法作以比较:,(1),三种编码的最高位都是符号位。,(2),当真值为正时,三种编码的符号位都用,0,表示,数值部分与真值相同。 即它们的表示方法是相同的。,(3),当真值为负时,三种编码的符号位都用,1,表示,但数值部分的表示各不相同,数值部分存在这样的关系:补码是原码的“求反加,1”(,整数,),,或者“求反末位加,1”(,小数,),;反码是原码的“每位求反”。,三种编码方法的区别主要在于,它们对负数的表示方法有所不同。,各种编码的比较,38,小结:,由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补码运算。,有些机器,数用原码进行存储和传送,运算时改用补码。,有些机器在做加减法时用补码运算,在做乘除法时用原码运算。,39,题:某系统采用,8,位二进制表示浮点数,其中阶符,1,位,阶码,2,位,尾符,1,位,尾码,4,位,并需规格化。请在下表中填入适当的数据。,十进制,+2.5,-5.75,二进制,真值(规格化后),原码,反码,补码,解,:,+2.5=+10.1,2,=+0.1010,2,2,2,-5.75=-101.11,2,=-0.10111,2,2,3,40,十进制,+2.5,-5.75,二进制,+10.1,-101.11,真值(规格化后),+0.1010,2,2,+0102,-0.10111,2,2,+0112,原码,010,01010,011,11100(,舍入,),反码,010,01010,011,10011,补码,010,01010,011,10100,解,:,+2.5=+10.1,2,=+0.1010,2,2,+0102,-5.75=-101.11,2,=-0.10111,2,2,+0112,41,题:当浮点数尾数使用补码表示时,怎样从形式上判断该尾数是否规格化(,0.5,|,M,|1,)?,即:假如规格化后,,M,补,=Ms.M,1,M,2,M,n,那么,Ms,、,M,1,、,M,2,、,M,n,为,1,还是,0,?,解,:当,M,为负数时,,M,补,=2-|M|,因此规格化时,,0.5|M|1,,,即:,1 2-|M|1.5,得:,1 M,补,1.5,对于,M,补,=Ms.M,1,M,2,M,n,由于,Ms=1,,,在小数点前面,权为,1,故,,0B,THEN,READ(C),从高位字节到低位字节依次存在主存中。,I,F,空,A,B,空,T,H,E,N,空,R,E,A,D,(,C,),空,48,2.1.4.,汉字的表示方法,汉字输入编码,汉字内码,汉字输出,1,)汉字输入编码:多种输入法,2,)汉字内码:机内码(采用两个字节表示),3,)汉字输出:汉字字型点阵,49,0000000110000000,0000000110000000,0000000110000000,0000000110000000,0000000110000000,0000000110000000,0000000110000000,0000000110000000,1111111111111111,1111111111111111,1100000110000011,1100000110000011,1100000110000011,1100000110000011,1111111111111111,1111111111111111,汉字的字模点阵,字模码,50,引入:,信息传输和处理过程中受到干扰和故障,容易出错。,解决方法:,在有效信息中加入一些冗余信息(校验位),检错码,奇偶校验码,定义:使包括一位校验码在内的数据代码中,“,1”,的个数总为奇数或者偶数。,设二进制数,X=X,0,X,1, X,n-1,校验位为,C,,,则,奇校验码,X,0,X,1,X,n-1,C=1,偶校验码,X,0,X,1,X,n-1,C=0,因此,,C,的生成算法是:,奇校验时,C=X,0,X,1,X,n-1,偶校验时,C=X,0,X,1,X,n-1,2.1.5,校验码,51,检错过程:,接收后,经同样的算法,由,X,0,X,1, X,n-1,形成,C,,判断,C,与,C,是否相同即可。,优点:,简单易行,缺点:,只能发现奇数个错,52,例,7,已知下表中左面一栏有,5,个字节的数据。请分别用奇校验和偶校验进行编码,填在中间一栏和右面一栏。,数据,偶校验编码,奇校验编码,1 0 1 0 1 0 1 0,0 1 0 1 0 1 0 0,0 0 0 0 0 0 0 0,0 1 1 1 1 1 1 1,1 1 1 1 1 1 1 1,数据,偶校验编码,奇校验编码,1 0 1 0 1 0 1 0,0 1 0 1 0 1 0 0,0 0 0 0 0 0 0 0,0 1 1 1 1 1 1 1,1 1 1 1 1 1 1 1,1 0 1 0 1 0 1 0,0,0 1 0 1 0 1 0 0,1,0 0 0 0 0 0 0 0,0,0 1 1 1 1 1 1 1,1,1 1 1 1 1 1 1 1,0,1 0 1 0 1 0 1 0,1,0 1 0 1 0 1 0 0,0,0 0 0 0 0 0 0 0,1,0 1 1 1 1 1 1 1,0,1 1 1 1 1 1 1 1,1,53,2.2,定点加法、减法运算,2.2.1,补码加法,1.,规则,:,任意两数的补码之和等于该两数和的补码,X,补,+ Y,补,= X+Y,补,(,mod 2,n+1,),补码加法的特点:,符号位作为数的一部分参加运算,符号位的进位丢掉。,运算结果为补码形式。,定点小数补码加法以,2,为模,定点整数补码加法以,2,n+1,为模,即符号位向更高位的进位自然丢失。,54,例如:,X=+1011 Y=-0101,,求,X+Y,解:,X,补,=,0,1011 Y,补,=,1,1011,X,补,0,1011,+ Y,补,1,1011,X+Y,补,1 0,0110,所以,X+Y=+0110,55,2.2.2,补码减法,1,、补码减法规则,推论:,X-Y,补,=X+,(,-Y,),补,=X,补,+-Y,补,Y,补,-Y,补,2,、求补规则:由,Y,补,求,-Y,补,连同符号位各位求反,末位加,1,。,56,例,1,:,Y,补,=,1,1010,,则,-Y,补,=,0,0110,例,2:A=1011 B= -0010,求,A-B,补,解:,A,补,=01011, B,补,=11110,,,-B,补,=00010,X,补,0,1011,+ -Y,补,000,10,X-Y,补,01,101,所以,A-B,补,= 0.1101,57,例,11,1101,0110,求,。,解,:,补,01101,补,00110,补,11010,补,01101,补,11010,补,1 00111,所以,0111,58,2.2.3,溢出概念与检测方法,1.,溢出概念,:,运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数。所以,运算溢出只对带符号数的运算有效。,溢出是一种错误!,2.,可能溢出的情况:,两正数加,变负数,正溢(大于机器所能表示的最大数),两负数加,变正数,负溢(小于机器所能表示的最小数),59,例,12,1011,1001,求,。,解,:,补,01011 ,补,01001,补,01011,补,01001,补,10100,两个正数相加的结果成为负数,这显然是错误的。,例,13,1101,1011,求。,解,:,补,10011 ,补,10101,补,10011,补,10101,补,01000,两个负数相加的结果成为正数,这同样是错误的数。,60,1,、双符号位法(变形补码),x,补,= 2,n+2,+ x,( mod 2,n+2,),S,f1,S,f2,0,0,正确(正数),0,1,正溢,1,0,负溢,1,1,正确(负数),S,f1,表示正确的符号,逻辑表达式为,V=S,f1,S,f2,可以用异或门来实现,3,、如何判断溢出(以补码加法为例):,两种方法:单符号位法和双符号位法。,61,采用变形补码后,如果两个数相加后,其结果的符号位出现,“,01,”,或,“,10,”,两种组合时,表示发生溢出。,但不论溢出与否,第一符号位始终表示正确数符。,例,17,:,X=+1100 Y=+1000,,求,X+Y,X,补,00,1100,+ Y,补,00,1000,X+Y,补,01,0100,结果符号位出现,01,,表示已溢出,即结果大于,1,。,62,2.,单符号位判溢,两操作数同号,且和数的符号与操作数的符号不同,X,补,= A,n-1,A,n-2,A,1,A,0,Y,补,= B,n-1,B,n-2,B,1,B,0,和,S,补,= S,n-1,S,n-2,S,1,S,0,则溢出标志,OVR= C,n,C,n-1,C,n,C,n-1,C,n,C,n-1,0 0,正确(正数),0 1,负溢,1 0,正溢,1 1,正确(负数),63,对于有符号数运算,当,OVR=1,时,则溢出。,例如:,X=+1011 Y=+1001,,求,X+Y,解:,X,补,=,0,1011 Y,补,=,0,1001,X,补,0,1011,+ Y,补,0,1001,X+Y,补,1,0100,OVR= C,n,C,n-1,=1,0=1,,,所以溢出。,C,n,=1,C,n-1,=0,64,2.2.4,基本的二进制加减法器,1,、全加器:由逻辑门电路组成的二进制加法线路,FA,A,i,B,i,C,i,S,i,C,i+1,S,i,=A,i,B,i,C,i,C,i+1,=,A,i,B,i,+,B,i,C,i,+,A,i,C,i,= (,A,i,B,i,)+(A,i,B,i,),C,i,=,A,i,B,i,.(A,i,B,i,),65,输入,输出,A,i,B,i,C,i,S,i,C,i,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,1,1,1,1,1,一位全加器真值表,66,S,i,和,C,i+1,形成的延迟时间,3T,1T,1T,1T,3T,A,i,B,i,C,i,S,i,3T+ 3T,A,i,B,i,C,i,C,i+1,但是,如果,A,i,,,B,i,早已输入,从,C,i,输入到输出,C,i+1,则只需,2T,时间。,3T+2T,67,行波进位补码加减法器,(使用补码、可以实现加减法),1,)加法实现,方式控制码,M=0,B,i,=B,i,M=,B,i,0=,B,i,S,i,补,=A,i,补,+B,i,补,=,A,i,补,+B,i,补,2,)减法实现,方式控制码,M=1,B,i,=B,i,M=,B,i,1=,B,i,C,0,=1,S,i,补,=A,i,补,+-B,i,补,=,A,i,-B,i,补,3,)判溢,OVR=C,n,C,n-1,B,0,B,1,B,n-1,68,3T,3T,3T,3T,3T,4,)结果时间延迟,S,n-1,:,(n-1)2T+9T,溢出,:,n2T+9T,3T,3T,1T,1T,1T,69,2.3.1,原码乘法并行乘法,被乘数:,原,f,n,1,1,0,乘数:,原,f,n,1,1,0,乘积:,原,(,f,f,),(,n,1,1,0,)(,n,1,1,0,),设,1101,1011,。手工计算过程如下:,2.3,定点乘法运算,1,1,0,1 (,),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,(,),70,人工算法与机器算法的同异性,n,位乘,n,位积可能为,2n,位。,乘积的最后是所有部分积之和。,采用流水式阵列乘法器,取代串行方案。,71,mn,位,不带符号的阵列乘法器逻辑框图,1.,不带符号的阵列乘法器,a1b0,72,设有两个不带符号的二进制整数,A,和,B,:,A,a,m,1,a,1,a,0,B,b,n,1,b,1,b,0,被乘数,A,与乘数,B,相乘,产生,m,n,位乘积,P,:,P,p,m,n,1,p,1,p,0,m,位乘,n,位不带符号整数的阵列乘法中,,“加法,移位”操作的被加数矩阵,如下:,73,55,位不带符号阵列乘法器逻辑电路图,总时间延迟:,t,TC,T,a,+ (n,1)T,f,+ (n,1) T,s,T,a,为“与门”的传输延迟时间,T,f,为全加器,(FA),的进位传输延迟时间,T,s,为,全加器,(FA),的和传输延迟时间,演示,74,例,19,参见图,2.5,,已知不带符号的二进制整数,A=11011,,,B=10101,,求每一部分乘积项,aibj,的值与,p,9,p,8,p,0,的值。,解:,1 1 0 1 1,A (27,10,),1 0 1 0 1,B (21,10,),1 1 0 1 1,a,4,b,0,=1, a,3,b,0,=1, a,2,b,0,=0, a,1,b,0,=1, a,0,b,0,=1,0 0 0 0 0,a,4,b,1,=0, a,3,b,1,=0, a,2,b,1,=0, a,1,b,1,=0, a,0,b,1,=0,1 1 0 1 1,a,4,b,2,=1, a,3,b,2,=1, a,2,b,2,=0, a,1,b,2,=1, a,0,b,2,=1,0 0 0 0 0,a,4,b,3,=0, a,3,b,3,=0, a,2,b,3,=0, a,1,b,3,=0, a,0,b,3,=0,1 1 0 1 1,a,4,b,4,=1, a,3,b,4,=1, a,2,b,4,=0, a,1,b,4,=1, a,0,b,4,=1,1 0 0 0 1 1 0 1 1 1,P,P = p,9,p,8,p,7,p,6,p,5,p,4,p,3,p,2,p,1,p,0,= 1000110111 (567,10,),75,求补电路原理:算前求补乘法器算后求补。,2.,带符号的阵列乘法器,76,对,Y = - 10110000,求补,,得,Y,补,=,1,01001111+1=,1,01010000,可以发现,求补的时候,从数的最低位开始,由低及高,直至找到第一个,1,,该位右边(低位部分)各位(包括该位自己),都保持不变,左边各位都取反。,对,2,求补电路,77,基于以上规律,,4,位求补电路如下图所示。,C,1,0,C,i,a,i,C,i,1,a,i,*,a,i,E,C,i,1,0,i,n,78,求补电路小结,E=0,时,输入和输出相等,E=1,时,则从数最右端往左边扫描,直到第一个,1,的时候,该位和右边各位保持不变,左边各数值位按位取反 可以用符号作为,E,的输入,a,i,*,a,i,C,i,1,a,0,*,a,0,C,-1,=a,0,0=,a,0,C,0,a,0,C,-1,=a,0,a,1,*,a,1,C,0,= a,1,a,0,C,1,a,1,C,0,=a,1,+a,0,a,2,*,a,2,C,1,= a,2,(a,1,+ a,0,),C,2,a,2,C,1,= a,2,+ a,1,+a,0,C,1,0,C,i,a,i,C,i,1,a,i,*,a,i,E,C,i,1,0,i,n,79,=1 =1 =0 =1,=0 =0 =1 =1,0,=1,C,i,为,1,的条件:,a,i,为,1,,或者,C,i-1,为,1,当,a,3,a,2,a,1,a,0,=1101,时的,求补过程:,80,(n,1)(n,1),位带求补器的阵列乘法器逻辑方框图,n,位绝对值,2n,位绝对值,81,带求补级的阵列乘法器既适用于原码乘法,也适用于间接的补码乘法。,在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。,间接的补码阵列乘法所需要增加的三个求补器。,82,83,例,17,设,15,13,用带求补器的原码阵列乘法器求出乘积,?,解,:,设最高位为符号位,则输入数据为,原,0,1111,原,1,1101,符号位单独考虑,算前求补级后,|,|,1111,|,|,1101,算后经求补级输出加上乘积符号位,1,,原码乘积值为,1,11000011,。,换算成二进制数真值,(,11000011),2,=(-195),10,十进制数验证:, ,15 (,13), ,195,相等。,84,例,21,设,x= -15,,,y= -13,,用带求补器的补码阵列乘法器求出乘积,xy,=?,并用十进制数乘法进行验证。解:,x,补,=10001 , y,补,=10011 ,乘积符号位运算:,11=0,尾数部分算前求补器输出,|x|=1111 , |y|=1101,1 1 1 1,1 1 0 1,1 1 1 1,0 0 0 0,1 1 1 1,1 1 1 1,1 1 0 0 0 0 1 1,乘积符号为,0,,算后求补器输出,11000011,,,xy,补,=011000011,补码二进制数真值,xy,=02,8,12,7,12,6,12,1,12,0,=(+195),10,十进制数乘法验证,xy,= (-15)(-13) = +195,85,2.4.1,原码除法算法原理,设有,n,位定点小数:,被除数,,其原码为,原,x,f,.,x,n,1,x,1,x,0,除数,, 其原码为,原,y,f,.,y,n,1,y,1,y,0,则有商,q,/,其原码为,q,原,(x,f,y,f,)+(,0.x,n,1,x,1,x,0,/ 0.y,n,1,y,1,y,0,),2.4,定点除法运算,86,1.,注意事项,:由于定点小数绝对值,1,,因此,在定点机器中,进行除法运算之前,必须先判断结果是否会溢出,即判断:,|,被除数,|,是否大于或者等于,|,除数,|,。,87,0.1 1 0 1,商,q,0.1 0 1 1,0.1 0 0 1 0,(,r,0,),被除数 ,0.,0,1 0 1 1,2,1,除数右移,1,位,减除数,0.0 0 1 1 1 0,r,1,得余数,r,1,0.,0 0,1 0 1 1,2,2,除数右移,1,位,减除数,0.0 0 0 0 1 1 0,r,2,得余数,r,2,0.,0 0 0,1 0 1 1,2,3,除数右移,1,位,不减除数,0.0 0 0 0 1 1 0 0,r,3,得余数,r,3,0.,0 0 0 0,1 0 1 1,2,4,除数右移,1,位,减除数,0.0 0 0 0 0 0 0 1,r,4,得余数,r,4,手工计算过程:,例如:,X=0.1001 Y=0.1011,,求,X Y,88,恢复余数法:,在手工计算中,商上,0,还是上,1,,取决于观察;而在计算机中,只能先做减法,如果结果为正,说明够减;否则,说明不够减。在不够减时,还需将除数加上去,因此,叫恢复余数法。,不足之处:,由于不够减时需要恢复余数,因此,其执行过程和步骤与够减时不一样,使得控制线路变得复杂。,两种处理余数的方法,89,余数为正,商,1,,下次除数右移做减法;余数为负,商,0,,下次除数右移做加法。控制简单,有规律。,不恢复余数法(加减交替法):,在恢复余数法中,第,i-1,次余数为,R,i-1,,,则第,i,次求商:,R,i,= 2R,i-1,- y,当,R,i,0,,,则商第,i,位上,0,,同时恢复余数做,R,i,+ y,,,第,i +1,次求商,R,i+1,= 2 (,R,i,+ y ) y = 2R,i,+ 2y - y= 2R,i,+ y,当,R,i,0,时,本次上商为,0,,继续求下一位商时,可以不恢复余数,而直接将,R,i,左移一位后加上除数即可。,90,恢复余数法:,被除数,/,余数 说明,00.1001,+-y,补,11.0101,11.1110,不够上,0,+y,补,00.1011,恢复,00.10010,+-y,补,11.10101,右移,1,位,00.001110,够减上,1,+-y,补,11.110101,右移,2,位,00.0000110,够减上,1,+-y,补,11.1110101,右移,3,位,11.1111011,不够上,0,+y,补,00.0001011,恢复,00.00001100,+-y,补,11.11110101,右移,4,位,00.00000001,够减上,1,例:,x=0.1001,,,y=0.1011,,,用恢复余数法和不恢复余数法求,x y,解:,y,补,=00.1011,-y,补,=11.0101,所以:,商,原,=0.1101,,,余数,原,=0.0001 2,-4,91,不恢复余数法:,被除数,/,余数 说明,00.1001,+-y,补,11.0101,11.1110,上,0,+y,补,00.01011,右移,1,位,00.00111,上,1,+-y,补,11.110101,右移,2,位,00.000011,上,1,+-y,补,11.1110101,右移,3,位,11.1111011,上,0,+y,补,00.00001011,右移,4,位,00.00000001,上,1,所以:,商,原,=0.1101,,,余数,原,=0.0001 2,-4,92,S,i,=,A,i,(B,i,P)C,i,C,i+1,=(,A,i,+C,i,),(B,i,P)+A,i,C,i,当,P=0,时,做加法,因为,S,i,=,A,i,(B,i,P)C,i,=A,i,(,B,i,0,)C,i,=,A,i,B,i,C,i,C,i+1,=(,A,i,+C,i,),(B,i,P)+A,i,C,i,=(A,i,+C,i,),(B,i,0)+A,i,C,i,=,A,i,B,i,+,B,i,C,i,+C,i,A,i,当,P=1,时,做减法,因为,S,i,=,A,i,B,i,C,i,C,i+1,=,A,i,B,i,+,B,i,C,i,+C,i,A,i,2.4.2,原码除法算法原理,可控加法,/,减法(,CAS,),单元:,93,被除数,x=0.x,6,x,5,x,4,x,3,x,2,x,1,(,双倍长,),除数,y=0.y,3,y,2,y,1,商数,q=0.q,3,q,2,q,1,余数,r=0.00r,6,r,5,r,4,r,3,除数右移,94,可见:,第一行的,CAS,,,P=1,,,做减法,最左边的,CAS,单元,,C,i+1,=0,其余行最左边的,CAS,单元,商数位,C,i+1,=,控制下一行的加,/,减运算,当,C,i+1,=0,,,控制下一行做加法;,当,C,i+1,=1,,,控制下一行做减法。,除数右移(相当于余数左移),可实现原码或无符号数相除,95,例,20,0.101001,0.111,求,q,=,。,解,:,x,补,0.101001,补,0.111 -,补,1.001,故得 商,q,q,0,.,q,1,q,2,q,3,0.101,余数,r,(0.00,r,3,r,4,r,5,r,6,),0.000110,除法例子,去浮点运算,96,2.5,定点运算器的组成,1,、逻辑数:,不带符号的二进制数,主要应用非数值领域。,2,、逻辑运算,逻辑非,按位取反,表示:常量上方加一横,如:,A,逻辑加,又称逻辑或,按位求或,用,+,或者,表示,逻辑乘,又称逻辑与,按位求与,用,.,或者,表示,逻辑异,又称按位加,按位求模,2,和,用,表示,2.5.1,逻辑运算,97,先行进位定点运算器,行波进位,造成行波进位速度慢的原因:,C,0,C,1,C,n-1,C,n,高位进位依赖低位进位,即进位串行产生。,FA0,S,0,Y,0,X,0,C,0,C,1,FA1,S,1,Y,1,X,1,C,2,FA14,S,14,Y,14,X,14,C,15,FA15,S,15,Y,15,X,15,C,16,C,16,C,15,C,14,C,13,C,12,C,11,C,10,C,9,C,8,C,7,C,6,C,5,C,4,C,3,C,2,C,1,C,0,C,i,32,28,24,20,16,12,8,4,t,超前进位,基本思想:找出各位进位与,X,i,、,Y,i,、,C,i,之间的关系。,C,1,形成条件:,X,0,、,Y,0,均为,1,X,0,、,Y,0,有一个,1,,且,C,0,为,1,所以:,C,1,=X,0,Y,0,+,(,X,0,+Y,0,),C,0,C,2,形成条件:,X,1,、,Y,1,均为,1,X,1,、,Y,1,有一个,1,,且,C,0,为,1,所以:,C,2,=X,1,Y,1,+,(,X,1,+Y,1,),C,1,=X,1,Y,1,+(X,1,+Y,1,)(X,0,Y,0,+(X,0,+Y,0,)C,0,),=X,1,Y,1,+,(,X,1,+Y,1,),X,0,Y,0,+(X,1,+Y,1,)(X,0,+Y,0,)C,0,S,i,=,X,i,Y,i,C,i,C,i+1,=,X,i,Y,i,+,Y,i,C,i,+,X,i,C,i,FA,X,i,Y,i,C,i,S,i,C,i+1,99,C,3,形成条件,:,C,3,=X,2,Y
展开阅读全文