B08第2章运算方法与运算器--计算机组成与结构-教学课件.ppt
《B08第2章运算方法与运算器--计算机组成与结构-教学课件.ppt》由会员分享,可在线阅读,更多相关《B08第2章运算方法与运算器--计算机组成与结构-教学课件.ppt(122页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章运算方法和运算器第2章运算方法和运算器2.1数据信息的表示2.2定点加减法运算2.3定点乘除运算2.4浮点数的运算方法2.5运算器的基本组成与实例2.6数据校验码1第2章运算方法和运算器2.1数据信息的表示2.1.1数值型数据的表示2.1.2数的编码表示2.1.3数的定点和浮点表示2.1.4十进制数的二进制编码表示2第2章运算方法和运算器2.1.1数值型数据的表示1)进位计数制2)不同数制间的数据转换3第2章运算方法和运算器n采用位权表示法表示,有权的基R数制的数为:D=Di*Ri(i=n-1、1、0、-1、-2、-k)R:基Ri:位i的权Di:位i的基本符号n:整数部分的位数k:小数部
2、分的位数1)进位计数制4第2章运算方法和运算器第2章运算方法和运算器2.1.2数的编码表示1)无符号数和带符号数2)机器数的三种表示方式3)移码6第2章运算方法和运算器1)无符号数和带符号数n无符号数N1=01101表示十进制数13N2=10011表示十进制数19n带符号数N1=01101表示十进制数+13N2=10011表示十进制数-3/-13/-12带符号的二进制数在计算机中的表示形式称为机器数。正号用“0”表示,负号用“1”表示。机器数对应的数值(用“+”、“-”符号表示的原值)称为机器数的真值。机器数的三种表示方式:原码、补码及反码7第2章运算方法和运算器n纯小数X的机器数为X0.X1
3、X2Xn,字长为n+1位,X0为符号位。n整数为X的机器数为XnXn-1Xn-2X1X0,字长为n+1位,Xn为符号位。2)机器数的三种表示方式8第2章运算方法和运算器第2章运算方法和运算器说明:X原=符号位+|X|0有两种表示形式实现加减运算较复杂10第2章运算方法和运算器模数学上把一个计量系统的测量范围称为“模”。设X和Y两个数,以M为模,若满足X=YKM(K为整数),则称Y是X对模M的补数。记作:X=Y(modM)例如:时钟系统,其模为12。-2=10+(-1)1210是-2对模12的补数,记作:-2=10(mod12)(2)补码11第2章运算方法和运算器第2章运算方法和运算器补码的定义
4、X0X1X补=2+X=2-|X|-1X0(mod2)X0X2nX补=2n+1+X=2n+1-|X|-2nX0(mod2n+1)13第2章运算方法和运算器第2章运算方法和运算器补码的填充规则是:定点小数:符号位不变,在数值位的末位后面补足0。定点整数:符号位不变,在符号位后用数符补足所需的位数。补码加减运算规则:X+Y补=X补+Y补X-Y补=X补+-Y补-Y补被称为Y补的机器负数。15第2章运算方法和运算器变形补码采用双符号位的补码表示方法,称为变形补码。正数的双符号位为00,负数的双符号位为11,即模4补码或模2n+2补码。例如,已知:X=0.1011,Y=0.1011,求X、Y的变形补码。解
5、:X补=0.1011X变补=00.1011Y补=1.0101Y变补=11.010116第2章运算方法和运算器第2章运算方法和运算器说明:0有两种表示形式实现加法运算时,若最高位有进位,需要把该值加到最低位上,才能得到正确结果18第2章运算方法和运算器定义X移=2n+X-2nX2n说明移码可视为无符号数,它实质是把真值映射到0-2n+1-1正数域。便于比较数的大小。0有唯一编码。移码为00000作为机器0(真值最小为-2n)。3)移码19第2章运算方法和运算器X0X2nX补=2n+1+X-2nX0(mod2n+1)当0X2n,X移=2n+X=2n+X补当-2nX0,X移=2n+X=2n+X补-2
6、n+1=-2n+X补将一个机器数的补码,符号位取反,数值位保持不变,即得X移。补码与移码的关系20第2章运算方法和运算器移码的运算规则X+Y移=X移+Y补X-Y移=X移+-Y补21第2章运算方法和运算器2.1.3数的定点和浮点表示n定点数:指计算机在运算过程中,数据中小数点的位置固定不变。n浮点数:指计算机在运算过程中,数据中小数点的位置是浮动变化的。1)定点数2)浮点数(1)浮点数的表示范围 (2)规格化浮点数 (3)机器0、上溢、下溢 (4)实用浮点数-IEEE754标准22第2章运算方法和运算器第2章运算方法和运算器2)浮点数1位n+1位m位Ms阶码E尾数M定点小数(原码或补码)决定有效
7、数字的精度定点整数(移码或补码)决定数的表示范围N=MRE24第2章运算方法和运算器最大正数:(1-2-m)22n-100111111最小正数:2-m2-2n01000001绝对值最大的负数:-122n-110110000绝对值最小的负数:-2-m2-2n11001111(1)浮点数的表示范围(设两部分皆用补码表示)25第2章运算方法和运算器(2)规格化浮点数尾数最高数位必须是一个有效值1/R|M|1原码0.1XXXX.1.1XXXX.当M=-1/2时是规格化浮点数补码0.1XXXX.1.0XXXX当M=-1/2时不是规格化浮点数26第2章运算方法和运算器第2章运算方法和运算器浮点数表示0的问
8、题-机器0尾数为0或阶码值小于所能表示的最小值上溢 (出错)阶码值大于所能表示的最大值下溢阶码值小于所能表示的最小值(3)机器0、上溢、下溢28第2章运算方法和运算器例:已知,浮点数格式如下,阶符1位,阶码3位,数符1位,尾数7位,阶码、尾数均以补码形式表示,写出X=0.0000111B的规格化形式。解:M补=0.0000111规格化后:尾数X补=0.1110000,阶码E补=4补=1100。规格化浮点数形式为:数符阶符阶码尾数0110029第2章运算方法和运算器第2章运算方法和运算器单精度格式的表示法:约定小数点左边隐含有一位,通常这位数就是1,这样实际上使尾数的有效位数为24位,即尾数为1
9、.M。(-1)Ms2E-127(1.M)为规格化数,1表示隐含位31第2章运算方法和运算器1)有权码8421码、2421码、5211码、4311码常用:8421码-BCD码,注意运算结果的修正(35)10的8421码是()?1+8=9、4+9=13、9+7=162)无权码-余3码余3码是在8421码的基础上把每个代码都加0011而形成(35)10的余3码是()?2.1.4十进制数的二进制编码表示32第2章运算方法和运算器2.2定点加减法运算2.2.1补码加法运算2.2.2补码减法运算2.2.3补码运算结果的溢出判断2.2.4补码加减运算的实现电路33第2章运算方法和运算器2.2.1补码加法运算
10、n补码加法运算公式:X+Y补=X补+Y补n补码加法运算特点:符号位作为数的一部分参加运算符号位向上的进位丢失34第2章运算方法和运算器例如:X=0.1010、Y=0.0011,求X+Y解:X补=0.1010,Y补=0.0011X补0.1010+Y补0.0011X+Y补0.1101X+Y=+0.110135第2章运算方法和运算器例如:X=+0.1011、Y=-0.0101,求X+Y解:X补=0.1011,Y补=1.1011X补0.1011+Y补1.1011X+Y补0.0110 X+Y=+0.011036第2章运算方法和运算器2.2.2补码减法运算n补码减法运算公式:X-Y补=X补+-Y补例如:X
11、=+0.0110,Y=+0.1101,求X-Y解:X补=0.0110,-Y补=1.0011X补0.0110+-Y补1.0011X-Y补1.1001 X-Y=-0.011137第2章运算方法和运算器2.2.3补码运算结果的溢出判断两个正数相加的结果成为负数两个负数相加的结果成为正数1)溢出概念38第2章运算方法和运算器n在确定了运算字长和数据的表示方法后,机器所能表示数值的范围也就相应确定了,一旦运算结果超出了这个范围,就会产生溢出。n两个正数相加,结果大于机器所能表示的最大正数,称为上溢或正溢。而两个负数相加,结果小于机器所能表示的最小负数,称为下溢或负溢。39第2章运算方法和运算器2)溢出判
12、别方法设:被操作数X补=Xs,X1X2Xn操作数Y补=Ys,Y1Y2Yn操作(和或差)结果S补=Ss,S1S2Sn方法1:单符号位判别法当XsYsSs+XsYsSs=1,产生溢出正溢负溢40第2章运算方法和运算器方法2:双进位判别法负溢正溢Cn+1:符号位产生的进位Cn:最高数值位产生的进位当Cn+1Cn+Cn+1Cn=1,产生溢出41第2章运算方法和运算器方法3:双符号位判别法(形补码)运算结果的两符号位相异时,表示溢出;相同时,表示未溢出。S1S2=01,正溢;S1S2=10,负溢。变形补码相加的结果,不论溢出与否,最高符号位始终指示正确的笕号。42第2章运算方法和运算器例如:X=+0.1
13、100,Y=+0.1000求:X+Y解:X补=00.1100Y补=00.1000X补00.1100+Y补00.1000X+Y补01.0100S1S2=01,表示结果正溢,即结果大于1。43第2章运算方法和运算器例如:X=-0.1100,Y=-0.1000求:X+Y解:X补=11.0100Y补=11.1000X补11.0100+Y补11.1000X+Y补10.1100S1S2=10,表示结果负溢,即结果小于-1。44第2章运算方法和运算器2.2.4补码加减运算的实现电路X补Y补M方式控制M=0加法M=1减法=1FA一位线路45第2章运算方法和运算器2.3定点乘除运算2.3.1原码一位乘法2.3.
14、2补码一位乘2.3.3原码一位除法2.3.4补码一位除法46第2章运算方法和运算器2.3.1原码一位乘法设X原=X0.X1X2XnY原=Y0.Y1Y2Yn则乘积:Z原=()|(0.X1X2Xn)(0.Y1Y2Yn)1)手工计算乘积的过程0.1101)0.1011110111010000)11010.10001111两个n位数相乘,乘积为2n位,需要2n位长的加法器。47第2章运算方法和运算器2)原码一位乘法的思想n采用部分积右移设:X、Y是两个正小数,X=0.X1X2Xn,Y=0.Y1Y2YnXY=X(0.Y1Y2Yn)=XY12-1+XY22-2+XYn2-n=2-1(XY1+2-1(XY2
15、+2-1(+2-1(XYn-1+2-1(0+XYn)48第2章运算方法和运算器设第i次部分积用Pi表示P0=0P1=2-1(P0+YnX)P2=2-1(P1+Yn-1X)Pi=2-1(Pi-1+Yn-i+1X)(i=0,1,2,n-1)Pn=2-1(Pn-1+Y1X)n经n次的判断、加法、右移,求出Pn,即获得运算结果49第2章运算方法和运算器3)原码一位乘法流程图开始P0,CnnYn=1?NPP+XP、Y右移1位CnCn1Cn=0?结束YYN50第2章运算方法和运算器4)实现原码一位乘法逻辑框图被乘数XALU计数器Cn部分积P乘数YYn51第2章运算方法和运算器5)例题X=0.1101,Y=
16、0.1011,求XY符号位则:XY=+0.10001111000=52第2章运算方法和运算器2.3.2补码一位乘1)补码与真值的转换关系若X补=X0.X1X2Xn当真值大于或等于0时,X为正数,X0=0,X补=0.X1X2Xn=X当真值小于0时,X为负数,X0=1,X补=1.X1X2Xn=2+X则:X=1.X1X2Xn2=1+所以,真值X与补码的关系:53第2章运算方法和运算器2)补码的右移设X补=X0.X1X2Xn,由补码与真值的转换关系:所以X/2=-X0/2+1/2=-X0+X0/2+1/2=-X0+根据补码与真值的关系:X/2补=X0.X0X1X2Xn54第2章运算方法和运算器3)布斯
17、(Booth)算法设X补=X0.X1X2Xn,Y补=Y0.Y1Y2YnXY补=X补在乘数最末位Yn后面要增加一位补充位Yn+1,且Yn+1=0XY补=X补(Y1-Y0)+(Y2-Y1)2-1+(Yn-Yn-1)2-(n-1)+(Yn+1-Yn)2-n55第2章运算方法和运算器P0补=0P1补=P0补+(Yn+1-Yn)X补2-1P2补=P1补+(Yn-Yn-1)X补2-1Pn补=Pn-1补+(Y2-Y1)X补2-1Pn+1补=Pn补+(Y1-Y0)X补56第2章运算方法和运算器补码一位乘法规则:开始时,部分积为。然后每一步都是在前次部分积的基础上,由判断位决定对X补的操作,再右移一位,得到新的
18、部分积。如此重复n+1步,最后一步不移位,便得到XY补。判断位规则:(1)如果Yn=Yn+1,部分积加0;(2)如果YnYn+1=01,部分积加X补;(3)如果YnYn+1=10,部分积加-X补。57第2章运算方法和运算器例:x=0.1101,Y=-0.1011,用补码一位乘求XY 补n x补=00.1101(双符号-x补=11.0011 Y补=1.0101(单符号)n部分积 乘数Yn Yn+1 说明 00.0000 1.010 1 0+11.0011 加-x补 11.001111.1001 1 1.01 0 1 右移1位+00.1101 加x补 00.0110 100.0011 01 1.0
19、 1 0 右移1位+11.0011 加-x补 11.0110 0111.1011 001 1.0 1 右移1位+00.1101 加x补 00.1000 00100.0100 0001 1.0 右移1位+11.0011 加-x补 11.0111 0001 xy补=1.01110001 xy=-0.1000111158第2章运算方法和运算器2.3.3原码一位除法加减交替法(不恢复余数法)X原=X0.X1X2XnY原=Y0.Y1Y2Yn商的符号:X0Y0商的数值:|X|/|Y|符号位不参加运算,并要求|X|Y|。运算规则:用被除数减去除数。当余数为正时,商上1,余数左移1位,减去除数;当余数为负时,
20、商上0,余数左移1位,加上除数。上一步重复执行n次(设数值部分有n位)。当余数为正时,商上1;当余数为负时,商上0,加上除数(做恢复余数的操作)。最后的余数为r2-n。59第2章运算方法和运算器例题:已知x=0.100,y=-0.101,用原码一位不恢复余数除法求(x/y)原|x|=00.100|y|=00.101 (-|y|)补=11.011被除数(余数)商 说明 00.100+11.011 减除数加(-|y|)补 11.111 0 余数为负,商上0 11.110 0.左移1位+00.101 加除数加(|y|)补 00.011 0.1 余数为正,商上1 00.110 0.1 左移1位+11.
21、011 减除数加(-|y|)补 00.001 0.1 1 余数为正,商上1 00.010 0.1 1 左移1位+11.011 减除数加(-|y|)补 11.101 0.1 1 0 余数为负,商上0,+00.101 加除数加(|y|)补 00.010(x/y)原=1.110(r)原=0.0102-360第2章运算方法和运算器2.3.4补码一位除法(补码加减交替法)n在被除数的绝对值小于除数的绝对值的情况下,补码一位除法运规则如下:被除数与除数均用双符号表示。若被除数与除数同号,用被除数减去除数;若被除数与除数异号,用被除数加上除数。若余数与除数同号,上商1,将余数左移一位后减去除数;若余数与除数
22、异号,上商0,将余数左移一位后加上除数。上一步重复执行n次(设数值部分有n位)。最后一次,若余数与除数同号,上商1。若余数与除数异号,上商0。61第2章运算方法和运算器商的校正:运算过程中任一步余数为0,若除数为正,不必校正;若除数为负,商加2-n运算过程中均不能除尽,商为正,不必校正;商为负,商加2-n余数的校正商为正,当余数与被除数异号时,则余数加除数商为负,当余数与被除数异号时,则余数减除数62第2章运算方法和运算器例题:已知x=0.100,y=-0.101,用补码加减交替法求(x/y)补n(x)补=00.100(y)补=11.011(-y)补=00.101被除数(余数r)商说明00.1
23、00 x、y异号+11.011加(y)补11.1111r与y同号,上商111.1101左移1位+00.101加(-y)补00.0111.0r与y异号,上商000.1101.0左移1位+11.011加(y)补00.0011.00r与y异号,上商000.0101.00左移1位+11.011加(y)补11.1011.001r与y同号,上商163第2章运算方法和运算器商为负,商加2-n(x/y)补=1.001+0.001=1.010商为负,余数与被除数异号,余数减除数(r)补=(11.101+00.101)2-3=(00.010)2-3(余数与被除数同号)64第2章运算方法和运算器2.4 浮点数的运算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- B08 运算 方法 运算器 计算机 组成 结构 教学 课件
限制150内