收藏 分销(赏)

计算机组成原理第六章PPT学习课件.ppt

上传人:精**** 文档编号:9469645 上传时间:2025-03-27 格式:PPT 页数:109 大小:735.50KB 下载积分:18 金币
下载 相关 举报
计算机组成原理第六章PPT学习课件.ppt_第1页
第1页 / 共109页
计算机组成原理第六章PPT学习课件.ppt_第2页
第2页 / 共109页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第三篇 中央处理器(,CPU,),第,6,章 计算机的运算方法,*,一、数据的编码与表示,*,二、定点数的算术运算,*,三、浮点四则运算,*,四、逻辑运算,数据表示,运算方法,一、数据的编码与表示,数据,逻辑数据,检错纠错码,字符,字符串,汉字,数值,文字、符号,语音,图形,图像,各种进制,BCD,码,定点,浮点,逻辑型数据,逻辑型数据只有两个值:,真和假,,正好可以用二进制码的两个符号分别表示,,例如,1,表示 真,则,0,表示 假,不必使用另外的编码规则。,对逻辑型数据可以执行逻辑的,与、或、非,等基本逻辑运算。,字符型数据的表示,字符作为人,机联系的媒介,指字母、数字、运算符等西文字信息。当前的西文字符集由,128,个符号组成,通常用,8,位二进制编码,即,用一个字节来表示每一个符号,,当前较多通用的标准字符集是,ASCII,码,,,ASCII,码字符集具体编码如下表所示:,ASCII,字符编码集,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 DEL,ASCII,码的机内表示,采用一个字节表示,ASCII,码时,最高位的处理方法:,(,1,)最高位,不用,,即恒为,“,0,”,;,(,2,)最高位用于,奇偶校验位,;,(,3,)若采用扩展,ASCII,码方案时,最高位也用来表示,字符编码,,此时,可表示,256,种符号。,字符串的存放:,字符串是指,连续,的一串字符,它们占据主存中,连续,的多个字节,每个字节存放一个字符,对一个主存字的多个字节,有,按从低位到高位,字节次序存放的,也有按,从高位到低位,字节次序存放的。例如:,IF AB THEN READ(C),就可以有如下不同的存放方式:,字符串的表示与存储,I F A A F I,B T T B ,假定每个字,H E N,N E H,由,4,个字节,R E A D D A E R,组成,(C )C (,汉字的表示,在计算机中表示汉字通常涉及以下几种汉字编码:,(,1,)汉字输入码,为直接使用西文标准键盘把汉字,输入,到计算机而设计。,(,2,)汉字机内码,汉字信息在计算机内部存储、处理和传送所采用的编码。通常采用国标码。,(,3,)汉字字模码,用于输出设备,输出,汉字而设计的字形编码,。,汉字的机内表示,通常用,两个字节,表示一个汉字。,汉字内码的识别方法:,(,1,),若将,ASCII,码字节的高位设为,“,0,”,,则汉字两 个字节的高位,均为,“,1,”,;,(,2,),若,ASCII,码字节最高位用于奇偶校验码或扩充码,则需要三个字节表示汉字,第一个字节作为汉字的,标识符,。,几种常用的数制及其转换,N,进制数可用,表示;,温故而知新:二进制、十进制、八进制、十六进制的表示方法及其相互转换。,二,十进制编码(,BCD,编码),BCD,编码,,用,四位,二进制表示一位十进制,有多种方案,,例如:,8421,码,,5421,码,,2421,码,余,3,码,格雷码。,又可区分为:,有权码:,四个二进制位均有指定的位权。,无权码:,二进制编码各位无指定的位权。,有权码,无权码,0,0000,0000,0011 0000,1,0001,0001,0100 0001,2,0010,0010,0101 0011,3,0011,0011,0110 0010,4,0100,0100,0111 0110,5,0101,1011,1000 0111,6,0110,1100,1001 0101,7,0111,1101,1010 0100,8,1000,1110,1011 1100,9,1001,1111,1100 1101,8421,余,3,码,2421,格雷码,+,0.0 0 0 0 0 0 1,1 0 0 0 1 0 0.1,1 0 0 0 1 0 0.1 0 0 0 0 0 1,0.,0,0,0,0,0,0,1,1,0,0,0,1,0,0.,1,+,?,思考:小数点位置不同,运算如何实现?,手工运算:,.,0,0,0,1,0,1,0,符号位,1,0,.,定点数运算中小数点的位置无关,小数点无需存放,数值型,数据的机内表示形式,隐藏,定点小数,:,N =,N,f,.,N,1,N,2,N,n,定点整数,:,N =,N,f,N,1,N,2,N,n,.,浮点数,:,N =,j,f,j,1,j,2,.J,m,;,S,f,.,S,1,S,2,.S,n,隐藏,隐藏,定点小数,表示,:X,f,X,-1,X,-2,X,-n,特点:,原码,为符号位加数的,绝对值,,,0,正,1,负,原码零,有两个编码,,+0,和,-0,编码不同,X,1 X=1+|X|,-1 X,0,0,X 1,定义:,X,原,=,原码,的定义,实例:,X,1,=0.10110,-0.10110 0.0000,X,1,原,=,0,.,10110,1,.,10110 0,.,0000,1,.,0000,n,定义:,X,原,=,定点整数,表示,:Xf X,n,X,n-1,X,1,0,X,2,n,-X=,2,n,+|X|,0,X 2,n,-2,n,X,0,2,n,=1 0 0,0,实例:,X,1,=10110,-10110,0,X,1,原,=0,10110 110110 0,0000,1,0000,定点小数,反码,的定义,特点:负数,反码,为符号位跟数每位的反,,0,正,1,负,反码,零有两个编码,,+0,和,-,0,的编码不同,X,(2-2,-n,)+X,-1 X,0,0,X 1,定义:,X,反,=,实例:,X,1,=0.10110,-0.10110 0.0000,X,1,反,=,0,.,10110 1,.,01001 0,.,0000,1,.,1111,n+1,定义:,X,反,=,定点整数的,反码,表示,0,X,2,n+1,-1+X,0,X 2,n,-2,n,X,0,2,n+1,=1 0 0,0,定点小数表示,:Xf X,-1,X,-2,X,-n,特点:,补码,最高一位为符号位,,0,正,1,负,补码表示,为模加上负数本身,补码,零有唯一编码,故补码还可以表示,-1,补码,能很好用于加减(乘除)运算,补码,的引入;钟表;负数的正补数。,实例:,X,1,=0.10110 -0.10110 0.0000 -,0,.0000,-1.0000,X,1,补,=,0,.,10110 1,.,01010 0,.,0000,0,.,0000,1.0000,n+1,定义:,X,补,=,定点整数表示,:X,f,X,n,X,n-1,X,1,0,X,2,n+1,+X,0,X 2,n,2,n,X,0,2,n+1,=1 0 0,0,整数,的原码、反码和补码表示,与定点小数的三种表示基本相同,差别仅表现在,小数点,的位置,整数的小数点在最低数值位的右侧。,整数中用,“,”,隔开符号位与数值位。,例如:五位整数的编码:,X,1,=+01110 X,1,原,=,0,01110 X,1,反,=,0,01110 X,1,补,=,0,01110,X,2,=-01110 X,2,原,=,1,01110 X,2,反,=,1,10001 X,2,补,=,1,10010,原、反、补码表示小结,正数的 原码、反码、补码表示,均相同,,符号位为,0,,数值位等于数的,真值,。,零的原码和反码均有,2,个,编码,补码只有,1,个编码,负数的原码、反码、补码表示,均不同,,,符号位为,1,,数值位:原码为数的绝对值;,符号位为,1,,数值位:反码为每一位均取反码;,符号位为,1,,数值位:补码为反码再在最低位,+1,;,n+1,位,移码,:,Xf X,n,X,n-1,X,1,1,无小数表示形式,2,定义,:,X,移,=2,n,+X -2,n,X=1/r,,称满足这种表示要求的浮点数为,规格化表示,。,把不满足这一表示要求的尾数,变成满足这一要求的尾数的操作过程,叫作浮点数的,规格化处理,,通过,尾数移位和修改阶码,实现。,X=S,r,j,X,浮,=,j,f,j,1,j,2,.J,m,S,f,S,1,S,2,.S,n,规格化的浮点数尾数形式(以二进制数为例):,当尾数用原码表示时,,S,原,=0.1xxx,或,1.1xxx,当尾数用补码表示时,,S,补,=0.1xxx,或,1.0 xxx,例1:,判断下列数的尾数表示是否为规格化的表示形式,-0.0111111 X,原,=1.,011111,1,-0.0111111 X,补,=1.1000001,-0.1000000 X,原,=1.1000000,-0.1000001 X,补,=1.0111111,浮点数在计算机内的表示,IEEE 标准:,阶码用移码,基数为2;尾数用原码,X=S,r,j,X,浮,=,j,f,j,1,j,2,.J,m,S,f,S,1,S,2,.S,n,定点数与浮点数的,比较,:,数位相同时,浮点数比定点数表示范围大得多;,浮点数为规格化数时,精度远比定点数高;,浮点运算步骤比定点数多,速度比定点数低;,判断溢出的方法不同。,IEEE 754,标准浮点数表示格式,X,浮,=,S,f,j,f,j,1,j,2,.J,m,S,1,S,2,.S,n,符号位,S,f,阶码位,尾数数码位,总位数,短浮点数,:,1,8,23,32,长浮点数,:,1,11,52,64,临时浮点数,:,1,15,64,80,X=S,r,j,例2:,设浮点数字长16位,其中阶码5位(含1位阶符),尾数11位(含1位数符),将十进制数+13/128写成二进制定点数和浮点数,并分别写出它在定点机和浮点机中的机器数形式。,例3:,将十进制数-54表示成二进制定点数和浮点数,并写出它在定点机和浮点机中的机器数形式。(其它要求同上例),例4:,设浮点数字长16位,其中阶码5位(含1位阶符),尾数11位(含1位数符),写出-53/512对应的浮点规格化数的原码、补码、反码和阶码用移码,尾数用补码的形式。,二、定点数的算术运算,(,1,),移位,运算,(,2,),补码,加减法运算,(,3,),原码,一位乘法运算,原码,一位除法运算,补码,一位乘法运算,补码,一位除法运算,(,4,),补码,二位乘法运算,(,5,),快速,乘除法运算方法,移位运算的实现,移位运算,,用于提高某些运算的速度或作为乘除法运算的子运算。分为算术移位和逻辑移位。,算术移位,:,对,有符号数,进行的移位,,小数点位置不变,。,规则,:,(1),移位后,符号位,不变;,(2),不同码制机器数移位后空位填补规则,如下表:,正数,码 制,原码、补码、反码,原 码,补 码,反 码,右移填补代码,0,0,1,1,负,数,左移填补代码,0,0,0,1,例5,:设机器数字长8位(含一位符号位),若A=,62,写出三种机器数左右移一位和两位后的表示形式以及相应的真值,并分析结果的正确性。,算术左右移规律总结:,对于,正数,,三种机器数移位后符号位均不变,左移时最高位丢1,结果出错;右移时,最低位丢1,影响精度。,对于,负数,,三种机器数移位后符号位均不变,,负数,原码,,左移高位丢1,出错,右移低位丢1,影响精度。,负数,补码,,左移高位丢0,出错,右移低位丢1,影响精度。负数,反码,,左移高位丢0,出错,右移低位丢0,影响精度。,逻辑移位(无符号数的移位),0.,1,0,0,0,0,1,0,左移,1,位,1.,0,0,0,0,1,0,0,右移,1,位,0,.,0,1,0,0,0,0,1,左移,2,位,0.,0,0,0,1,0,0,0,右移,2,位,0,.,0,1,0,0,0,0,0,无符号数,规律:,无符号数的左右移位,空出来的位都补0.,补码加减法的实现(以定点小数为例),基本公式:,X,Y,补,=X,补,Y,补,(,mod 2,)小数,X,Y,补,=X,补,Y,补,(,mod 2,n+1,)整数,特点,:,(,1,)符号位,参与,运算,结果符号位通过运算自动产生;,(,2,)运算实际上为“模运算”,因此,运算过程中可能产生,模溢出,,丢掉模后,不影响运算结果。,例6,:已知A=0.1011,B=-0.0101.求A+B补。,例7,:已知A=-1001,B=-0101.求A+B补。,例8,:设机器数字长8位,其中1位为符号位,若A=+15,B=+24,求A-B补,并还原成真值。,补码加减法的溢出,溢出:,运算结果超出数据的表示范围。分为上溢和下溢(或称,正溢出和负溢出,)。,例如:,X=+0.1011 Y=+0.1101,X,补,=,0,.1011,Y,补,=0.1101,X+Y,补,=X,补,+Y,补,=0.1011+0.1101,=,1,.0100,正溢出,溢出的后果是结果的最高数值位,侵入,符号位,使符号位遭到破坏。在计算机中,溢出是作为,出错,处理的。,补码加减法的溢出判别,溢出判断:两种方法,(,1,)一位,符号位判断法:对于加法,只有,正加正(正溢出)或负加负(负溢出),的情况可能产生溢出,判断原则是:结果符号位与源操作数相同则不溢出,不相同则溢出,对于减法,只有符号不同的俩数相减才可能溢出,若有溢出正减负为正溢出,负减正为负溢出。,(,2,)两位,符号位判断法:即,变形补码法,判别,,结果的双符号位的值为,01或10,为溢出。01为正溢出,10为负溢出,溢出时,,高位符号是,结果的正确符号。,例9:,设A=-11/16,B=-7/16,求,A+B,补,,用一位符号位判断法判断有无溢出,若有溢出,是什么溢出类型?,例,10,:试用,变形补码法,计算A+B并判断有无溢出,并指出是什么溢出类型,设A=+11/16,B=+7/16。,例1,1,:试用,变形补码法,计算A+B并判断有无溢出,并指出什么溢出类型,设A=-11/16,B=-7/16。,例,12,:已知,X=,+11/16,Y=,+3/16,,用,双符号位法,判断X+Y,补,有无溢出,若溢出,是什么类型的溢出。,例,13,:已知:,X=0.1011 Y=0.0101,,用,双符号位法,判断X+Y,补,有无溢出,若溢出,是什么类型的溢出。,原码一位乘运算,基本公式:,设 被乘数,X,原,=x,f,.x,1,x,2,x,n,乘 数,Y,原,=y,f,.y,1,y,2,y,n,则,X,Y,原,=(x,f,y,f,),.,(|X,|,|,Y,|,),其中,,|,X,|,和,|,Y,|,分别是,X,和,Y,的绝对值,引例:,X=0.1101 Y=-0.1011,X,原,=0.1101,Y,原,=1.1011,|,X,|,=0.1101,|,Y,|,=0.1011,0.1 1 0 1,.,累加器初值取零值,0.1 0 1 1 +,.,1 1 0 1,1 1 0 1,.,部分积,右,移,1,位,,0 0 0 0,将移出的,1,保存起来,+1 1 0 1,求第一次部分积,0.1 0 0 0 1 1 1 1,手工运算过程,原码一位乘运算,原码一位乘运算,|,X,|,=0.1101,|,Y,|,=0.1011,0.1 1 0 1,.,1,0.1 0 1 1 +,.,1 1 0 1,1.,前次部分积加被乘数,1 1 0 1,.,部分积右移,0 0 0 0,将移出的一位保存起来,+1 1 0 1,求第二次部分积,0.1 0 0 0 1 1 1 1,手工运算过程(笔算),原码一位乘运算,|,X,|,=0.1101,|,Y,|,=0.1011,0.1 1 0 1,.,1 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,手工运算过程(笔算),原码一位乘运算,X,*,=0.1101 Y,*,=0.1011,0.1 1 0 1,.,0.1 0 1 1 +,.,1 1 0 1 1.,前次部分积加被乘数,1 1 0 1,.,部分积右移,0 0 0 0,将移出的一位保存起来,+,1 1 0 1,求第四次部分积,0.1 0 0 0 1 1 1 1,手工运算过程,乘数有,四,位有效数位,所以共完成,四,次加法和,四,次右移,再用一步完成两数符号,异或,求积的符号,结果为,-0.10001111,。,原码一位乘运算规则,原码一位乘运算规则:,1.,乘积的,符号位,由两数符号位,“,异或,”,产生,符号位不参与运算;,2.,部分积可采用一位或两位符号位;,3.,乘积的数值部分由两数绝对值相,乘,产生,,通过,n,次,“,加法,”,和,n,次,“,右移,”,操作实现,。,(n,为乘数的有效数字的位数,),原码一位乘运算实例,部分积 乘数,0,.,0 0 0 0,0.1 0 1,1,+0.1 1 0 1,0,.,1 1 0 1,0,.,0 1 1 0 1,0 1 0,1,+0.1 1 0 1,1,.,0 0 1 1,0,.,1 0 0 1,1 1,0 1,0,0,.,0 1 0 0,1 1 1,0,1,+0.1 1 0 1,1,.,0 0 0 1,0,.,1 0 0 0,1 1 1 1,0,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,例1,4,:X=,-,0.1101 Y=-0.1011,手工运算过程,计算机内运算的实现方法,则 X*=0.1101 Y*=0.1011,X,原,=1.1101 Y,原,=1.1011,X,Y,原,=0.10001111,例,15,:已知,X=-0.1110 Y=-0.1101,用原码一位乘实现,X,*,Y,原,。,原码两位乘(选讲),两位乘数的值可以有四种可能组合,每种组合对应的操作:,00,相当于0*X,部分积右移2位,不进行其它运算;,01,相当于1*X,部分积加,1X,后右移2位;,10,相当于2*X,部分积加 2X后右移2位;,11,相当于3*X,部分积加3X后右移2位。,原码两位乘运算规则(部分积用三位符号位):,例,16,:设,X=0.1,11,111,Y=,-,0.1,1100,1,用原码两位乘求,X*Y,原。,例,17,:设X=0.100111,Y=0.100111,,用原码两位乘求,X*Y,原。,补码乘法运算,原码乘法不难实现,但有,两个问题,:,1.符号位与数值位分开处理,不方便;,2.若数据为补码形式,可能需要多于两次,补码,到,原码的变换。,也可以直接用,补码,完成乘法运算,即从补码开始,直接得到补码的积。,补码一位乘法运算的,算法规则,补码一位乘算法规则:,X、Y的符号位都参加运算,部分积采用,双,符号位;,2.被乘数符号任意,乘数符号为,正,,按,原码,运算规则运算。,3.被乘数符号任意,乘数符号为,负,,乘数补码,去掉符号位,与被乘数相乘,最后,加上,-,X,补,进行校正。,4.进行,n,次加运算,,n,次右移,,积的符号位,由运算过程自动产生,这点与原码运算不同。,5.被乘数和乘数符号均为任意,用,比较法(Booth算法),。,(1)X、Y的符号位都参加运算,部分积采用双符号位;,(2)乘数最低位之后增加一位附加位,y,n+1,,,且令初值,y,n+1,=0;,(3),每位部分积运算规则如下:,y,n,y,n+1,=00 时,部分积加零,再右移1位;,y,n,y,n+1,=01 时,部分积加 X,补,,再,右移1位,;,y,n,y,n+1,=10 时,部分积加-X,补,,再,右移1位,;,y,n,y,n+1,=11 时,部分积加零,再右移1位;,(4),进行,n+1,次加法,n次右移,,积的符号由运算过程自动产生。,例,18,:已知X补=1.0101,Y补=0.1101,用补码一位乘求X*Y补。,例,19,:已知X补=0.1101,Y补=1.0101,用补码一位乘求X*Y补。,例,20,:已知X补=1.,1,101,Y补=0.1101,用补码一位乘求X*Y补。,例,21,:已知X补=,0,.01,1,1,Y补=,1,.1,0,01,用补码一位乘求X*Y补。,补码一位乘法运算实例(比较法),已知:,X,补,=0,.,1101,Y,补,=0,.,1011,部分积 乘数,y,n,y,n+1,0 0,.,0 0 0 0,0,.,1 0 1,1 0,+1 1.0 0 1 1,1 1,.,1 0 0 1 1,0 1 0,1 1,1 1,.,1 1 0 0 1 1,0 1,0 1,+0 0.1 1 0 1,0 0,.,1 0 0 1,0 0,.,0 1 0 0 1 1 1,0,1 0,+1 1.0 0 1 1,1 1,.,0 1 1 1,1 1,.,1 0 1 1 1 1 1 1,0 1,+0 0.1 1 0 1,0 0,.,1 0 0 0 1 1 1 1,则,-X,补,=1,.,0011,X*,Y,补,=0.10001111,例,22,:,X,补,=1.0101,Y,补,=1.0011,用比较法求,X,*,Y,补,例,23,:,X,补,=1.,1,101,Y,补,=,0,.0,1,11,用比较法求,X,*,Y,补,原码,除法,(,以定点小数为例),基本公式:,设 被除数,X,原,=x,f,.x,1,x,2,x,n,除 数,Y,原,=y,f,.y,1,y,2,y,n,则,:,若,0,X Y,X,Y,原,=(x,f,y,f,),.,(X,*,Y,*,),其中,,X,*,和,Y,*,分别是,X,和,Y,的绝对值,例如:X=0.1011 Y=-0.1101,笔算除法过程,0.1101,0.1101 0.1011,0,-,0.0,1101,0.0,10010,-0.00,1101,0.000,1010,0.000,10100,-0.0000,1101,0.00000111,原码除运算方法分析,(,以定点小数为例),机器实现问题:,1.,需单独设计比较器线路;,2.,需,2n,位的减法器线路。,解决方案:,1.,比较,操作改由“,试减,”实现;,2.,将除数右移改为,部分余数左移,;,3.,减法由,+-Y,补,转化为加法实现。,原码恢复余数除法的算法规则,1.,除法运算前,应满足条件:,X,*,Y,*,且,Y,*,0,否则,按溢出或非法除数处理;,2.,符号位不参与运算,,单独处理:,q,f,=x,f,y,f,;,3.,部分余数采用,单符号位或双符号位,;,4.,每步部分余数运算规则:,5.,共需经过,n+1,次取商和,n,次部分余数的左移实现。,余数为正,商上,1,,,余数和商左移一位,,减除数;,余数为负,商上,0,,需通过,加除数来,恢复余数,,余数左移一位减除数,商左移一位。,被除数(余数)商,说 明,0,.,1 0 1 1,0,.,0 0 0 0,+1.0 0 1 1,+-Y,*,补,(减除数,),1,.,1 1 1 0,余数,0,商上,1,1,.,0 0 1 0,0 0 0,0 1,左移一位,+1.,0 0 1 1,+-Y,*,补,0,.,0 1 0 1,余数,0,商上,1,0,.,1 0 1 0,0 0,0 1 1,左移一位,+1.,0 0 1 1,+-Y,*,补,1,.,1 1 0 1,余数,0,商上,1,例如:,X=-0.1011,Y=-0.1101,X,原,=1.1011,Y,原,=1.1101,X,*,=0.1011,Y,*,=0.1101,-,Y,*,补,=1.0011,恢复余数法,X/Y,原,=0.1101,R,原,=0.0111,2,-,4,例,24,:假如X=,-,0.1,00,1 Y=-0.1,10,1,用原码的恢复余数法计算,X/Y,原,原码加减交替除法算法规则,1.,除法运算前,应满足条件:,X,*,Y,*,且,Y,*,0,否则,按溢出或非法除数处理;,2.,符号位不参与运算,,单独处理:,q,f,=x,f,y,f,;,3.,部分余数采用,单符号位或双符号位,;,4.,每步部分余数运算规则:,余数为正,商上,1,,,余数左移一位,,减除数;,余数为负,商上,0,,,余数左移一位,,加除数;,5.,共需经过,n+1,次取商和,n,次部分余数的左移实现(,n,为除数的有效位数)。,被除数(余数)商,说 明,0,.,1 0 1 1,0,.,0 0 0 0,试减,+1.0 0 1 1,+-Y,*,补,(,减除数,),1,.,1 1 1 0,余数,0,商上,1,1,.,0 0 1 0,0 0 0,0 1,左移一位,+1.0 0 1 1,+-Y,*,补,0,.,0 1 0 1,余数,0,商上,1,0,.,1 0 1 0,0 0,0 1 1,左移一位,+1.0 0 1 1,+-Y,*,补,1,.,1 1 0 1,余数,0,商上,1,例如:,X=-0.1011,Y=-0.1101,X,原,=1.1011,Y,原,=1.1101,X,*,=0.1011,Y,*,=0.1101,-,Y,*,补,=1.0011,加减交替 除 法,X/Y,原,=0.1101,R=0.0111,2,-,4,例,25,:假如X=,-,0.1,00,1 Y=-0.1,10,1,用原码的加减交替法计算,X/Y,原,补码除法(加减交替法),运算规则,符号位参加运算,除数和被除数均用补码表示;,第一步的运算,被除数与除数,同号,,被除数,减去,除数,加,-y,补,;,被除数与除数,异号,,被除数,加上,除数,加,y,补,;,后续步骤的运算,余数与除数,同号,,,商上,1,,余数左移一位,减去,除数;,余数与除数,异号,,,商上,0,,余数左移一位,加上,除数。,重复步骤,共做,n,次部分余数左移,,n,次加法,,n+1,次取商,最后一位商恒置,1,,不用求。,如果对商的精度没有特殊要求,一般可采用“末位恒置,1”,法,此法操作简单,易于实现,。,27 三月 2025,81,例,26,.,设,x,=0.1011,,,y,=0.1101,,求 并还原真值。,补,x,y,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”,1.0 1 1 1,1,异号上“0”,+,y,补,1.1 0 1 1,1 0,异号上“0”,+,y,补,0.0 0 1 1,1 0 0,同号上“1”,0.0 1 0 0,1,1,0.1 1 1 0,1 0,1,1.0 1 1 0,1 0 0,1,末位恒置“1”,0.0 1 1 0,1 0 0 1,1,补,=,1.0011,x,y,0,0,1,1,+,y,补,x,y,=,0.1101,则,被除数,(,余数,),商 说 明,例,27,:已知,x=0.1001,,,y=0.1101,,用补码加减交替法求,x/y,补。,例,28,:已知,x=,-,0.1001,,,y=0.1101,,用补码加减交替法求,x/y,补。,三、浮点数的运算,浮点数加减运算,由对阶、尾数加减、规格化、舍入和结果判溢出,五步,实现。,浮点数乘除运算,由阶码加减、尾数乘除、规格化、舍入和结果判溢出,五步,实现。,浮点数加减运算,运算步骤:,(,1,)对阶操作,求阶差:,j,=,j,X,-j,Y,,,使阶码小的数的尾数右移,j,位,,其阶码取大的阶码值;,即小阶向大阶看齐。,(,2,)尾数相加减;,j,X,X=S,X,2,j,Y,Y=S,Y,2,求:,X,Y=?,已知:,(,3,)规格化处理,当尾数出现,00.0,或,11.1,的组合时,需左规;当尾数出现,01.X,或,10.X,的组合时,需右规;,(,4,)舍入操作,分为零舍一入法和末位恒置一法;,(,5,)判结果的正确性,即检查阶码,结果,j,补,=01,为上溢(出错),结果,j,补,=10,,为下溢,当机器零处理。,浮点数加运算,举例,已知:,X=2,010,0.11011011,Y=2,100,(-0.10101100),,浮点数,阶码用 5 位补码(含2位符号位)表示,尾数用 10 位补码(含2位符号位)表示,,求:Z,1,=X+Y=?,解:首先,写出浮点数X、Y的正确的补码表示:,阶码用 5 位补码,(含2位符号位),,尾数用 10 位补码(含2位符号位),X,浮,=,00,010,;,00,.,11011011,Y,浮,=,00,100,;,11,.,01010100,浮点数加运算举例,(,1,)对阶,j,补,=,j,X,补,+-j,Y,补,=00,010+11,100,=11,110,j=-2 0,,即,j,X,j,Y,因此,修改,M,X,补,=,00.00110110,(即右移,2,位),j,x,补,=00,100,(,2,)尾数求和差,00.00110110,+,11.01010100,11.10001010,(3)规格化处理,规格化处理,当尾数出现,00.0,或,11.1,的组合时,需左规,阶码减一;当尾数出现,01.X,或,10.X,的组合时,需右规,阶码加一;,本例尾数为11.1X,,应执行一次左规操作,故得,S,z1,补,=11.0001010,0,,j,Z1,补,=00,011,(,4,)舍入处理,舍入,按照一定规则舍去多余的位数,并对保留位进行调整的过程。,主要方法:,末位恒置,1,法:,在舍去尾数,最低位之后数值,的同时,将尾数末位置,1,。,0,舍,1,入法:,当尾数用原码表示,或用补码表示的正数时,,,若移出部分的最高位为,0,,舍去;,若移出部分的最高位为,1,,在舍去时,将尾数末位,+1,。,当尾数用补码表示的负数时,,,若移出各位全为,0,,舍去;,若移出部分的最高位为,0,其余各位不全为,0,,舍去;,若移出部分的最高位为,1,其余各位全为,0,,舍去;,若移出部分的最高位为,1,其余各位不全为,0,,末位,+1,。,(,5,)检查溢出,浮点溢出用,阶码溢出,表示。,溢出有两种情况:,阶符为,10,,阶码下溢:用机器零表示;,阶符为,01,,阶码上溢:,置溢出标志,转溢出处理。,本例中的阶码不溢出。,则得 Z,1,浮,=,00,011,;,11,.,00010101(,末位恒置一,),,,即 Z,1,=2,011,(-0.11101011),例,29,:已知两浮点数X=0.1101,2,10,,Y=0.10112,01,,求X+Y,。,例,30,:设X=2,-101,(-0.101000),Y=2,-100,(+0.111011),阶符取2位,阶码的数值部分取3位,数符取2位,尾数的数值部分取6位,求X-Y。,浮点数乘除运算,运算步骤:,(1),阶码加、减:,乘:,j,X,+,j,Y,,,除:,j,X,-j,Y,(2),尾数乘、除:,乘:,S,X,S,Y,,,除:,S,X,/S,Y,(3),规格化处理;,(4),舍入操作;,(5),判结果的正确性,即检查阶码溢出。,j,X,X=S,X,2,j,Y,Y=S,Y,2,求:,X,*,Y=?,或,X/Y=?,已知:,浮点数乘法运算举例,已知:,X=2,010,0.1011,,,Y=2,100,(-0.1101),求:,Z=X,Y=?,写出,X,、,Y,的正确的浮点数表示:,阶码用,5,位补,码,(含,2,位符号位),尾数用,5,位补码,(含,1,位符号位),X,浮,=,0,0,010,;,0,.,1011,Y,浮,=,0,0,100,;,1,.,0011,(,1,)阶码相加,若阶码采用补码,则按补码加法规则进行。,j,X,补,+j,Y,补,=,00,010+00,100=00,110,(,2,)尾数相乘,(,比较法,),Sz,补,=,S,x,补,S,y,补,=,11.01110001,Sz,原,=,1.10001111,(,3,)规格化处理,方法与加减法相同。,本例中不需要规格化。,(,4,)舍入处理,方法与加减法相同。,本例中,,采用末位恒置一法,,得,S,Z,原,=,1.100,0111,1,(5)检查溢出,阶码符号位为00,不溢出。,最后得,Z,浮,=,00,110,;,1,.,1001,即 Z,=2,110,(-0.1001),例,31,:已知X=2,-101,0.011,1,,Y=2,011,(-0.110,1,),求X*Y。,浮点数除运算,举例,X,浮,=,11,110,;,0,0.1011 Y,浮,=,0,0,100,;,1,1.,0011,(,1,)阶码相减,j,Z,补,=j,x,补,+-j,y,补,=,11,110+11,100=,11,010,X=2,-010,0.1011,,,Y=2,100,(-0.1101),阶码用,5,位补码,(2,位符号位,),尾数用6位补码,(,2位符号位,),(,2,)尾数相除(用补码的加减交替法),Sz,补,=,S,x,补,S,y,补,=1.,0011,(,3,)(,4,)(,5,):,已是规格化数,末位恒置一,阶码符号位为11,不溢出,最终的商,Z,浮,=,11,010,;,1.,0011,,,即,X,/Y,=2,-110,(-0.1101),例,32,:,已知浮点数,X=2,-011,(,-0.1001),,,Y=2,100,0.1110,阶码用,5,位补码,(2,位符号位,),尾数用6位补码,(,2位符号位,),,求,X/Y=,?,例,33,已知浮点数,X=2,010,(,0.1011),Y=2,-101,(-,0.1101),,求,X/Y,补,=,?,四、逻辑运算,特点:,操作数和运算结果均为,逻辑数,,即无数值及位权关系的数;运算按,位,进行,位间不存在进位、借位等关系。,四种基本运算:,大多数机器均具备,四种,基本逻辑运算,即,逻辑,与,、逻辑,或,、,逻辑,非,和逻辑,异或,。其他运算可以通过基本运算组合实现。,逻辑与,操作:,按位“与”。,运算符:,“,”或“,”,,,二,元运算。,一位二进制数的逻辑乘,运算规则,为:,x,i,y,i,z,i,0 0 0,0 1 0,1 0 0,1 1 1,逻辑或,操作:,按位“或”。,运算符:,“,”或“,+,”,,,二,元运算。,一位二进制数的逻辑加,运算规则,为:,x,i,y,i,z,i,0 0 0,0 1 1,1 0 1,1 1 1,逻辑非(求反),操作:,按,位,求反。,运算符:,“,”,或“,”,,,一,元运算。,一位二进制数的逻辑非,运算规则,为:,x,i,z,i,0 1,1 0,逻辑异或,操作:,按位“不带进位的加法”、“异或”。,运算符:,“,”,,二,元运算。,一位二进制数的逻辑异,运算规则,为:,x,i,y,i,z,i,0 0 0,0 1 1,1 0 1,1 1 0,五、本章内容总结,应掌握的主要内容:,1.,数据在计算机内的表示,2.,数值数据算术运算的实现算法,二进制数的原、反、补、移码表示,补码加、减法运算,原码一位乘法,补码一位乘法、二位乘法,原码、补码的加减交替除法,各类机内,数据的表示范围,数的机内表示,运算方法,定点数的算术运算,先行进位技术,浮点数的机内表示,浮点数加、减法运算,浮点数乘、除法运算,浮点数的算术运算,3.,逻辑运算,4.,先行进位技术,行波进位进位加法器,多重分组跳跃进位,单重分组跳跃进位,进位延迟时间计算,
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

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

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

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服