白中英-第五版-计算机组成原理第2章._第1页
白中英-第五版-计算机组成原理第2章._第2页
白中英-第五版-计算机组成原理第2章._第3页
白中英-第五版-计算机组成原理第2章._第4页
白中英-第五版-计算机组成原理第2章._第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章运算方法与运算器,2.1数据与文字的表示方法2.2定点加法、减法运算2.3定点乘法运算2.4定点除法运算2.5定点运算器的组成2.6浮点运算方法和浮点运算器,二进制数,便于计算机存储及物理实现特点:逢二进一,由0和1两个数码组成,基数为2,各个位权以2k表示二进制数:anan-1a1a0.b1b2bman2nan-12n-1a121a020b12-1b22-2bm2-m其中ai,bj非0即1,十六进制数,用于表达二进制数,相互转换简单基数16,逢16进位,位权为16k,16个数码:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六进制数:anan-1a1a0.b1b2bman16nan-116n-1a1161a0160b116-1b216-2bm16-m其中ai,bj是0F中的一个数码,二进制数或十六进制数转换为十进制数,方法:按权展开二进制数转换为十进制数0011.1010B12112012-102-212-33.625十六进制数转换为十进制数1.2H116021611.125,十六进制数用后缀字母H,二进制数用后缀字母B,十进制整数转换为二或十六进制数,整数部分转换:用除法十进制数整数部分不断除以基数2或16,并记下余数,直到商为0为止由最后一个余数起逆向取各个余数,则为转换成的二进制和十六进制数12601111110B1267EH,十进制小数转换为二或十六进制数,小数部分转换:用乘法分别乘以各自的基数,记录整数部分,直到小数部分为0为止0.81250.1101B0.81250.DH小数转换会发生总是无法乘到为0的情况可选取一定位数(精度)将产生无法避免的转换误差,真值和机器数,真值:现实中真实的数值机器数:计算机中用0和1数码组合表达的数值无符号数:只表达0和正整数的定点整数有符号数:表达负整数、0和正整数的定点整数符号位需要占用一个位,常用机器数的最高位0表示正数、1表示负数具有原码、反码、补码、移码,没有符号位,使用全部字长来表示数值大小字长N8时,编码:0000000011111111取值范围:0255(28-1)字长N16时,编码:0000FFFFH取值范围:065535(216-1)字长N32时,编码:00000000FFFFFFFFH取值范围:0232-1,无符号数的表示,2.1数据与文字的表示方法,2.1.1数据格式2.1.2数的机器码表示2.1.3字符与字符串的表示方法2.1.4汉字的表示方法2.1.5校验码,计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式定点格式容许的数值范围有限,但要求的处理硬件比较简单浮点格式容许的数值范围很大,但要求的处理硬件比较复杂,2.1.1数据格式,1、定点数的表示方法,定点表示:约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成纯小数或纯整数定点数xx0 x1x2xn在定点机中表示如下(x0表示符号位,0代表正号,1代表负号),定点整数的小数点位置,定点小数的小数点位置,定点数例,例:X=+1010110.,纯整数:X=01010110.,正数,符号位取0,Y=-1101001.,纯整数:Y=11101001.(原码),负数,符号位取1,X=+0.11011,Y=-0.10101,符号位取0,纯小数:X=0.11011,符号位取1,纯小数:X=1.10101(原码),定点整数的表示范围,纯整数的表示范围为(x1x2xn各位均为0时最小;各位均为1时最大,x0为符号位)0|2n1例如:n8,最大值编码:11111111表示:111111111000000001281目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算,定点小数的表示范围,纯小数的表示范围为(x1x2xn各位均为0时最小;各位均为1时最大,x0为符号位)0|12-n例如,n8,最大值编码:0.11111111表示:0.111111111.00.000000011-2-8,2、浮点数的表示方法,电子质量(克):910-28=0.910-27太阳质量(克):21033=0.21034采用定点很难表示,而且不容易计算?数的小数点位置随比例因子的不同而在一定范围内自由浮动一个十进制数可以写成10e一个进制数可以写成e,M尾数e指数R基数,数的科学表达法,阶码和尾数,用定点小数表示,给出有效数字,决定了浮点数的表示精度,表达指数部分用整数形式表示,指明小数点在数据中的位置决定浮点数的表示范围,早期计算机表达法,浮点数的机器表示方法,32位单精度浮点数,:含阶符的阶码,8位阶码采用移码方式(方便比较和对阶)来表示正负指数,采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。,:1位符号位0表示正数1表示负数,:尾数,23位小数表示,小数点放在尾数域最前面,IEEE754标准,64位双精度浮点数,:1位符号位,:尾数,52位小数,IEEE754标准,:含阶符的阶码,11位阶码采用移码方式(方便比较和对阶)来表示正负指数,采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值1023(01111111111),即E=e+1023。,浮点数的规格化,例:156.78=15.678101=1.5678102=0.15678103=REM,对于二进制数1011.1101=0.101111012+4=10.1111012+2=1.01111012+3(规格化表示法)=1.01111012+11(规格化表示法)=REM,那么,计算机中究竟采用哪种数据形式?,多种数据形式,二进制数,IEEE754标准,小数点左边这个1在机器里可以省略(少存一位),尾数最高有效位为1,隐藏,并且隐藏在小数点的左边(即:1M2)32位单精度浮点数规格化表示(-1)s(1.)2E-127e127(e127)64位双精度浮点数规格化表示(-1)s(1.)2E-1023e1023(e1023),指数真值e用移码形式表示为阶码,尾数规格化表示原则,IEEE754标准,X(-1)s1.M2e(1.011011)231011.011(11.375)10,指数e阶码127100000100111111100000011=(3)10,包括隐藏位1的尾数1.M1.011011,例1:浮点机器数(41360000)16,求真值,例2:真值20.59375,求32位单精度浮点数,分别将整数和分数部分转换成二进制数20.5937510100.10011,移动小数点,使其在第1、2位之间,10100.100111.01001001124,e4,S0,E4+12713110000011,M010010011,得到32位浮点数的二进制存储格式为:,01000001101001001100000000000000(41A4C000)16,二进制:010000011010000110000000,S=0e=10000011-01111111=100=4M=1.01000011真值(1.01000011)2410100.001120.187510,练习题:若浮点机器为(41A18000)16,求真值?,3、十进制数据表示,人们习惯于用十进制表示数据,而计算机则采用二进制表示和处理数据。所以向计算机输入数据时,需要进行十进制数到二进制数的转换;输出数据时,则要进行二进制数到十进制数的转换处理。在数据量较小的情况下,这样的转换对机器运行效率的影响不是很大。但是,在某些应用领域,运算简单而数据量很大,进行这些转换所占用的时间比例比较大。所以为了提高机器的运行效率,计算机可以用十进制来表示和处理数据。一个十进制数位是用若干位二进制编码表示。用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为二十进制编码,也称BCD码(BinaryCodedDecimal)。常用这种编码作为十进制数转换成二进制数的中间过渡。即先将一个十进制数用BCD码来表示,再把它们送入机器。,BCD码(BinaryCodedDecimal),二进制编码的十进制数一个十进制数位用4位二进制编码来表示常用8421BCD码:低10个4位二进制编码表示09BCD码很直观BCD码:0100100101111000.000101001001十进制真值:4978.149,BCD码便于输入输出,表达数值准确,十进制数串的表示方法,1.字符串形式每个十进制的数位或符号位都用一个字节存放,-38,2.压缩的十进制数串形式一个字节存放两个十进制的数位,符号位占半个字节,数位加符号位之和必须为偶数(例如用C表示正,D表示负),+12,123,-12,每个数位可用BCD码,1.原码表示法,定点整数的原码形式为x0 x1x2xn,使用8位二进制:10510=011010012X+105,则X原01101001X-105,则X原111010010使用原码有两种表达形式+0原=00000000-0原=10000000,2.1.2数的机器码表示,具有原码、反码、补码、移码,原码缺点,进行加减运算十分麻烦比较数的绝对值的大小大数减小数符号跟大数,2019年12月5日4时35分,现在是北京时间3点整,而时钟却指向5点。,5-2=3,5+10=15=3(12自动丢失。12就是模),2、补码表示法,2019年12月5日4时35分,继续推导:5-2=5+10(MOD12)-2=10(MOD12)结论:,可以说:在模为12的情况下,-2的补码就是10。一个负数用其补码代替,可以把减法转换为加法来实现。,2.补码表示法,定点整数的补码形式为x0 x1x2xn,定点整数的补码方法,有符号整数在计算机中默认采用补码最高位表示符号:正数用0,负数用1正数补码:直接表示数值大小(原码无符号数)负数补码:符号位不变,将对应数值取反加1105补码110100101101001-105补码1101001取反100101101001011110010111,为什么是补码,证明:-105补=2n+1+X=28+(-1101001),=100000000+(-1101001),=10010111,3、定点整数的反码,反码:二进制的各位数码0变为1,1变为0有符号整数采用反码最高位表示符号:正数用0,负数用1正数反码:直接表示数值大小(原码补码)负数反码:将对应正数反码取反105反码01101001-105反码1101001取反10010110,4、定点整数的移码(偏移码),移码通常用于表示浮点数的阶码有符号整数采用移码最高位表示符号:正数用1,负数用0(跟其他码相反)移码的传统定义:X移码2nX2nX2n105移码1000000011010011,1101001-105移码1000000011010010,0010111,传统定义与标准浮点数阶码的定义不同,例8,设机器字长16位,定点表示,尾数15位,数符1位,问:定点原码整数表示时,最大正数是多少?最小负数是多少?定点原码小数表示时,最大正数是多少?最小负数是多少?,例8之解,定点原码整数表示最大正数值(2151)10(32767)10最小负数值-(2151)10(-32767)10定点原码小数表示最大正数值(0.111.11)2(12-15)10最小负数值(0.111.11)2(12-15)10,例9假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数,真值表示为(非IEEE754标准):(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?,(1)最大正数011111111111111111111111111111111(12-23)2127(2)最小正数000000000000000000000000000000001.02128(3)最小负数111111111111111111111111111111111(1223)2127(4)最大负数100000000000000000000000000000001.02128,同一代码的不同含义,一个代码,采用不同编码,其数值不一样计算机内一个二进制数:10000001不同的含义无符号二进制数:1298421BCD码:81有符号整数的原码:-1有符号整数的反码:-126有符号整数的补码:-127,数的机器码表示小结,正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法采用补码,减法运算可以用加法运算实现,节省硬件,目前机器中广泛采用补码表示法有些机器用原码进行存储和传送,运算时改用补码有些机器做加减法时用补码,做乘除法时用原码移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反,ASCII码(美国标准信息交换码),标准ASCII码用8位二进制编码,最高位为偶校验位,其余7位构成128个编码可显示和打印的字符:20H后的94个编码数码09:30H39H大写字母AZ:41H5AH小写字母az:61H7AH空格:20H,2.1.3字符和字符串(非数值)的表示方法,表2.1ASCII字符编码表,0-3位,4-6位,字符串的表示方法,字符串是指连续的一串字符,通常占用主存中连续的多个字节,每个字节存一个字符IFABTHENREAD(C),字符串的存放方法,1.汉字的输入编码,数字编码国标区位码,用数字串代表一个汉字输入拼音码以汉字拼音为基础的输入方法字形编码用汉字的形状(笔划)来进行的编码例如五笔字形,2.1.4汉字的表示方法,2、汉字内码,汉字内码是用于汉字信息的存储、检索等操作的机内代码,一般采用两个字节表示汉字内码有多种方案,常以国标码为基础进行编码例如,将国标码两字节的最高位置1后形成汉字“啊”的CCDOS系统汉字内码3021H(0011000000100001)对应的汉字内码B0A1H(1011000010100001),字模码,汉字的字模码为:16位16位=32字节,汉字字模点阵及编码,3、汉字字模码用于对汉字进行显示输出,汉字的表示方法,汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、交换、输出四种不同用途的编码,不要混为一谈,字符代码化(输入),2.1.5校验码,校验码:能够发现甚至纠正信息传输或存储过程中出现错误的编码检错码:仅能检测出错误的编码纠错码:能够发现并纠正错误的编码最简单且应用广泛的检错码:奇偶校验码奇校验:使包括校验位在内的数据中为“1”的个数恒为奇数偶校验:使包括校验位在内的数据中为“1”的个数恒为偶数(包括0)只能检测出奇数个位出错的情况,不能纠错,例7:用奇校验和偶校验进行编码,数据1010101001010100000000000111111111111111,偶校验码101010100010101001000000000011111111111111110,奇校验码101010101010101000000000001011111110111111111,2.2运算方法和运算器,2.2定点加法、减法运算2.3定点乘法运算2.4定点除法运算2.5定点运算器的组成2.6浮点运算方法和浮点运算器,2.2.1补码加法,补码加法公式x补+y补=x+y补(mod2n+1)在模2n+1意义下,任意两数的补码之和等于该两数之和的补码。,补码加法特点,符号位要作为数的一部分一起参加运算要在模2n+1的意义下相加,即超过2n+1的进位要丢掉,补补补证明,假设采用定点整数表示现分四种情况来证明(1)0,0,则0补=x,补=y,补=x+y所以等式成立.(2)0,0,则0或0时,2n+1()2n+1,进位2n+1必丢失,又因()0,故补补补当0时,2n+1()2n+1,又因()0或0这种情况和第2种情况一样,把和的位置对调即得证。(4)0,0,则0相加两数都是负数,则其和也一定是负数。补2n+1,补2n+1补补2n+12n+12n+1(2n+1)上式右边分为”2n+1”和(2n+1)两部分.既然()是负数,那么(2n+1)进位”2n+1”必丢失.又因()0,所以补补2n+1()补,例11:+1001,+0101,求,x补01001,y补00101x补01001y补00101+补01110所以01110,例9:1011,0101,求,x补01011,y补11011x补01011y补11011+补100110所以00110,2.2.2补码减法,补码减法运算公式x-y补=x补-y补=x补+-y补,x-y补=x补-y补=x补+-y补,只要证明补补,上式即得证。现证明如下:补补补(mod2n+1)补补补(2.19a)补()补补补补补补(2.19b)将式(2.19a)与(2.19b)相加,得补补补补补补补补补补补补0故补补(mod2n+1)(2.20)从补求补的法则是:对补包括符号位“求反且最末位加1”,即可得到补。写成运算表达式,则为补补2n其中符号表示对补作包括符号位在内的求反操作,2n表示最末位的1,x1补10010-x1补x1补2-4011010000101110x2补01101-x2补x2补2-4100100000110011,例13:已知11110,21101求:x1补,-x1补,x2补,-x2补,例14:+1101,+0110,求-,x补01101,y补00110-y补11010x补01101-y补11010-补100111所以0111,2.2.3溢出概念与检验方法,两个正数相加,结果为负(即:大于机器所能表示的最大正数),称为正溢。两个负数相加,结果为正(即:小于机器所能表示的最小负数),称为负溢。运算出现溢出,结果就是错误的,例151011,1001,求。,解:补01011,补01001补01011补01001补10100两正数相加,结果为负,显然错误。运算中出现了“正溢”,例16x=-1101,y=-1011,求x+y。解:x补=10011,y补=10101x补10011x补10101x+y补01000两个负数相加的结果成为正数,表示负溢。,2019年12月5日4时35分,1)两个数太大:产生进位而改变了符号位;,1、两异号数相加或两同号数相减是否会产生溢出?2、仅当两同号数相加或两异号数相减时才有可能产生溢出?,问题:,决不会产生溢出,正确,2、溢出原因:,“溢出”检测方法:,第一种方法:采用双符号位法,称为“变形补码”或“模4补码”。用“00”表示正数,“11”表示负数,两个符号位同时参加运算,如果运算结果两符号位相同,则没有溢出发生。如果运算结果两符号位不同,则表明产生了溢出。“10”表示负溢出(下溢出),说明运算结果为负数,“01”表示正溢出(上溢出),说明运算结果为正数。,例17x=+1100,y=+1000,求x+y。,解:x补=001100,y补=001000x补001100y补001000x+y补010100(表示正溢),例18x=-1100,y=-1000,求x+y。,解:x补=110100,y补=111000x补110100y补111000x+y补101100(表示负溢),第二种方法:单符号位法,当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢。故溢出逻辑表达式为VCfC0,其中Cf为符号位产生的进位,C0为最高有效位产生的进位。(见例15、16),2.2.4基本的二进制加法/减法器,在计算机中完成两个二进制数相加的基本加法器有半加器和全加器。半加器在完成两数相加时,不需要考虑低位进位。全加器用来完成两个二进制数相加,并且同时考虑低位的进位,即全加器完成三个一位数相加的功能。,2.2.4基本的二进制加法/减法器,表2-2全加器真值表,2.2.4基本的二进制加法/减法器,全加器的表达式为:Si=AiBiCiCi+1=AiBi+BiCi+AiCi一位全加器内部逻辑图,2.2.4基本的二进制加法/减法器,利用全加器可以实现两数的和或差1、串行加法:从低位开始,每步只完成一位运算的加法。串行加法器只需要全加器计算两个n位数之和,需要n+1步(1位符号位),或n+2步(2位符号位)运算。高位运算只有等低位运算完成后才能进行,速度较慢,2.2.4基本的二进制加法/减法器,2.3定点乘法运算,2.3.1原码并行乘法2.3.2补码并行乘法,2.3.1原码并行乘法,1.人工算法与机器算法的同异性设n位被乘数和乘数用定点整数表示被乘数原fn110乘数原fn110则乘积原(ff)(n110)(n110),两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。数值部分的运算方法与普通的十进制乘法类似。设1101,1011.让我们用人工算法求其乘积,其过程如下:,2019年12月5日4时35分,人工算法,1101,1011,1101,1101,0000,1101,+,10001111,2.3.1原码乘法,缺点将多个数一次相加,机器难以实现。一般的加法器,只能把两个输入数相加,多个位积的同时输入是无法实现的。乘积位数增长了一倍,即2n,而机器字长只有n位所以需要改进方法一:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(时间延迟太长).方法二:不带符号位的阵列乘法器,2.不带符号的阵列乘法器,mn位不带符号的阵列乘法器逻辑图,每一个部分乘积项aibj叫做一个被加数。这mn个被加数可以用mn个“与”门并行地产生。,不带符号的全加器(FA)阵列,斜线为进位输出和输入,行波进位加法器,n(n-1)个全加器,nn个与门,play,5位5位阵列乘法器的逻辑电路图,例19已知不带符号的二进制整数A=11011,B=10101,求每一部分乘积项aibj的值与p9p8p0的值。,解:11011A(2710)10101B(2110)11011a4b0=1,a3b0=1,a2b0=0,a1b0=1,a0b0=100000a4b1=0,a3b1=0,a2b1=0,a1b1=0,a0b1=011011a4b2=1,a3b2=1,a2b2=0,a1b2=1,a0b2=100000a4b3=0,a3b3=0,a2b3=0,a1b3=0,a0b3=011011a4b4=1,a3b4=1,a2b4=0,a1b4=1,a0b4=11000110111PP=p9p8p7p6p5p4p3p2p1p0=1000110111(56710),3、带符号位的阵列乘法器,阵列乘法器使用的求补电路原理:采用按位扫描技术,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变,左边各数值位按位取反。,3.带符号的阵列乘法器,(1)对2求补器电路,进行求补的方法就是从数的最右端a0开始,由右向左,直到找出第一个“1”,其以左的每一个输入位都求反。,E为“1”对a求补E为“0”输出输入符号位可作控制信号E,play,1010,0110,1,3.带符号的阵列乘法器,当乘积为负时,将运算结果变成带符号数(补码),符号位用做使能控制信号,符号位异或的结果,用做使能控制,既适用于原码乘法输入为原码,算前和算后求补不做任何动作。也适用于补码乘法输入为补码,算前转换为原码和算后求补。符号单独处理。ABPp2n1p1p0p2nanbn,解:x原=01111,y原=11101,|x|=1111,|y|=1101符号位运算:01=111111101111100001111111111000011乘积符号为1,算后求补器输出11000011,xy原=111000011换算成二进制数真值是xy=(-11000011)2=(-195)10,例20设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积xy=?,乘积符号位单独运算:x0y0=11=0算后求补器输出为11000011,最后补码乘积值为xy补=011000011195,例21设15,13,用带求补器的补码阵列乘法器求出乘积?解输入数据用补码表示:x补=10001,y补=10011尾数部分算前求补器输出为|x|=1111,|y|=1101。,2.4定点除法运算,2.4.1原码除法算法原理主要内容:原码除法两个原码表示的数相除时,商的符号由两数的符号“异或”求得,即同号时为正,异号为负。商的数值可由两数的绝对值相除求得。,手工算除法,x=0.1011y=0.1101求xy,0.1011,0.1101,0.01101,0.01001,0.001101,0.000101,0.00001101,0.00000111,1,商符单独处理,心算上商,余数不动低位补“0”减右移一位的除数,0,0.,1,0,1,0,0,0,?,?,2.4.1原码除法,笔算特点:(1)每次都是由心算来比较余数和除数的大小,余数大时,商1;余数小时,商0。(2)每做一次减法,总是保持余数不动,而除数向右移一位。(3)商的符号单独处理。,机器实现:机器必须通过减法,余数为正够减,余数为负表示不够减。不够减,则加上除数,这叫恢复余数法;不够减,下次加除数,这叫加减交替法(即不恢复余数法)。,0.101001+-y补1.0011.110001+y补0.1110.101001+-y补2-11.10010.001101+-y补2-21.110011.111111+y补2-20.001110.001101+-y补2-31.1110010.000110,例,x=0.101001,y=0.111,求x/y。x补=0.101001y补=0.111-y补=1.001q=q0.q1q2q3=0.101r=0.000110,恢复余数,恢复余数,不够减的次数不固定。,注意:减法在机器中是通过补码加法完成的。,q0=0,q1=1,q2=0,q3=1,恢复余数法,假设要计算xy,当上商qi时,x减的是y2-i,余数为r;r0,表示不够减,上商0,并恢复余数,即r=r+y2-i,下次减y2-(i+1);r+y2-i-y2-(i+1)=r+y2-(i+1)可不恢复余数,下次对余数做加法。这种不恢复余数除法,叫做加减交替法。,加减交替法的原理,0.101001+-y补1.0011.110001+y补2-10.01110.001101+-y补2-21.110011.111111+y补2-30.0001110.000110,例,x=0.101001,y=0.111,求x/y。x补=0.101001,y补=0.111,-y补=1.001,补码移1位,补码移2位,补码移3位,q=q0.q1q2q3=0.101r=0.000110,加减法的步数固定!每步实际是做补码加法!余数10000,则尾数末位加1;若移出01111,即10000,则直接截掉!若移出10000,若尾数末位为0,则截掉;反之,末位加1,1001,0101,+1,1,1001,+1,0111,1000,2.6.1浮点加法、减法运算,浮点加/减法操作流程舍入处理IEEE754中的四种舍入处理朝0舍入向尾数绝对值变小方向舍入,即截掉移出部分。朝+舍入对于正数,只要移出的数位有1,则尾数末位加1;对于负数,直接截掉!朝舍入对于正数,直接截掉!对于负数,只要移出的数位有1,则尾数末位加1。,2.6.1浮点加法、减法运算,浮点加/减法操作流程溢出处理阶码上溢浮点数的指数e超出机器阶码表示的最大值。结合数符,可判定浮点数为+或。阶码下溢浮点数的指数e超出机器阶码表示的最小值。可判定浮点数0。尾数上溢尾数求和时,产生向小数点左侧的进位,可右规消除!尾数下溢尾数右移时,尾数最低位流出,可舍入处理!,浮点加/减法操作流程,0操作数检查对阶,“小阶向大阶看齐”尾数求和结果规格化,“左规”、“右规”舍入处理溢出判断,例28:x=20100.11011011,y=2100(0.10101100),求x+y。解:阶码采用双符号位,阶码、尾数采用补码表示x浮00010,0.11011011;y浮00100,1.010101001)对阶。x对阶(小阶向大阶看齐):x浮00100,0.00110110(11)2)尾数求和。3)规格化。Mx+My补1.10001010(11),Mx+My补1.00010101(10),4)舍入处理。采用0舍1入法,得:00011,1.000101105)判溢出。阶码符号位为00,不溢出。最后结果:x+y=2011(0.11101010),00011,1.00010101(10),2.6.1浮点加法、减法运算,课堂练习:x=0.1101*201y=-0.1010*211尾数和阶符都采用补码表示,都采用双符号位表示法。求x+y,2.6.1浮点加法、减法运算,x浮=0001,00.1101y浮=0011,11.0110阶差=000111011110即为-2Mx应当右移2位,x浮=0011,00.0011(01)尾数和为11.1001(01)左规11.0010(10),阶码减1为0010舍入(朝舍入)11.0011丢弃10 x+y=-0.1101210,2.6.2浮点乘法、除法运算,运算规则:阶码求加减,尾数求积商。运算步骤:0操作数检查阶码加减尾数乘除结果规格化及舍入处理溢出判断,2.6.2浮点乘法、除法运算,阶码运算浮点乘除时,需要对阶码做加、减运算。阶码运算的溢出判断。采用双符号位。,2.6.2浮点乘法、除法运算,尾数处理在浮点格式中,尾数位数有限,要做规格化和舍入处理截掉处理:丢掉正常尾数最低位之后的全部数值舍入处理:尾数用原码表示尾数多余位中包含1,则尾数末位置1。0舍1入法。,例30设有浮点数2-50.0110011,23(0.1110010),阶码用4位补码表示,尾数(含符号位)用8位原码表示,求浮。要求用原码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用0舍1入舍入操作。,解:阶码采用双符号位,尾数原码采用单符号位,则有Mx原=0.0110011,My原=1.1110010Ex补=11011,Ey补=00011x浮=11011,0.0110011,y浮=00011,1.1110010(1)求阶码和:Ex补+Ey补=11011+00011=11110(补码形式-2)(2)尾数乘法运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论