计算机组成原理第2章-运算方法和运算器.ppt
《计算机组成原理第2章-运算方法和运算器.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第2章-运算方法和运算器.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章:运算方法和运算器第二章:运算方法和运算器21数据与文字的表示方法数据与文字的表示方法22定点加法、减法运算定点加法、减法运算23定点乘法运算定点乘法运算24定点除法运算定点除法运算25定点运算器的组成定点运算器的组成26浮点运算方法和浮点运算器浮点运算方法和浮点运算器2 21 1 数据与文字的表示方法数据与文字的表示方法一、计算机中常用的数据表示格式:定点格式一、计算机中常用的数据表示格式:定点格式,浮点格式浮点格式.1、定点格式:约定机器中所有数据的小数点位置是固定不变的。、定点格式:约定机器中所有数据的小数点位置是固定不变的。将数据表示成定点纯小数或定点纯整数。将数据表示成定点纯小
2、数或定点纯整数。假设用一个假设用一个n+1位字来表位字来表示一个定点数示一个定点数X,在定点机中可表示为如下形式:在定点机中可表示为如下形式:X0X1X2.Xn-1Xn符号符号量值(尾数)量值(尾数)如果数如果数X表示的是纯小数表示的是纯小数:0|X|1-2-n如果数如果数X表示的是纯整数表示的是纯整数:0|X|2n-12、浮点表示法,即小数点的位置是浮动的:、浮点表示法,即小数点的位置是浮动的:N=Re.m其中其中m称为浮点数的尾数,用定点小数表示。称为浮点数的尾数,用定点小数表示。e称为浮点的指数,称为浮点的指数,是一个整数,常称为阶码。比例因子的基数是一个整数,常称为阶码。比例因子的基数
3、R对二进计数制的机器对二进计数制的机器是一个常数,一般规定是一个常数,一般规定R为为2,8或或16。因此一个机器浮点数应当由。因此一个机器浮点数应当由阶码和尾数及其符号位组成:阶码和尾数及其符号位组成:阶符阶符阶码阶码数符数符尾数尾数EsE1E2.EmMsM1M2.Mn313023220IEEE标准标准:32位浮点数位浮点数32位浮点数中,位浮点数中,S是浮点数的符号位,占是浮点数的符号位,占1位,安排在最高位,位,安排在最高位,S=0表示正数,表示正数,S=1表示负数。表示负数。M是尾数,放在低位部分,占有是尾数,放在低位部分,占有23位,位,用小数表示,小数点放在尾数域的最前面。用小数表示
4、,小数点放在尾数域的最前面。E是阶码,占有是阶码,占有8位,阶位,阶符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数真值数值也大。采用这种方式时,将浮点数的指数真值e变成阶码变成阶码E时,时,应将指数应将指数e加上一个固定的偏移值加上一个固定的偏移值127(01111111),即),即E=e+127。一个规格化的一个规格化的32位浮点数位浮点数x的真值可表示为:的真值可表示
5、为:x=(1)s(1.M)2E127e=E127其中尾数域所表示的值是其中尾数域所表示的值是1.M。因为规格化的浮点数的尾数域最。因为规格化的浮点数的尾数域最左位(最高有效位)总是左位(最高有效位)总是1。故这一位经常不予存储,而认为隐藏。故这一位经常不予存储,而认为隐藏在小数点的左边。在小数点的左边。64位的浮点数中符号位位的浮点数中符号位1位,阶码域位,阶码域11位,尾数域位,尾数域52位,指数偏位,指数偏移值是移值是1023。因此规格化的。因此规格化的64位浮点数位浮点数x的真值为:的真值为:x=(1)s(1.M)2E1023e=E1023SEM例例1若浮点数若浮点数x的二进制存储格式为
6、(的二进制存储格式为(41360000)16,求其,求其32位浮位浮点数的十进制值。点数的十进制值。解:将解:将16进制数展开后,可得二进制数格式为进制数展开后,可得二进制数格式为0100 0001 001101100000000000000000S阶码(阶码(8位)位)尾数(尾数(23位)位)指数指数e=阶码阶码-127=10000010-01111111=00000011=(3)10包括隐藏位包括隐藏位1的尾数的尾数1.M=1.01101100000000000000000=1.011011于是有于是有x=(-1)s*1.M*2e=+(1.011011)*23=+1011.011=(11.
7、375)10例例2将十进制数将十进制数20.59375转换成转换成32位浮点数的二进制格式来存储。位浮点数的二进制格式来存储。解:首先分别将整数和分数部分转换成二进制数:解:首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第然后移动小数点,使其在第1,2位之间位之间10100.10011=1.010010011*24e=4于是得到:于是得到:S=0,E=4+127=131=10000011,M=010010011最后得到最后得到32位浮点数的二进制存储格式为:位浮点数的二进制存储格式为:010000011010010011000000000
8、00000=(41A4C000)16思考题:思考题:问:问:1、计算机中常用的数据表示格式?、计算机中常用的数据表示格式?2、按照、按照IEEE754标准,标准,32位浮点数的标准格式包含哪几部分?位浮点数的标准格式包含哪几部分?3、对于真值:、对于真值:x=-1.01101102100如何用如何用32位浮点数的标准格位浮点数的标准格式表示?式表示?313023 220SEM数符数符阶码阶码尾数尾数SEM(11110001101101100000000000000000)2=(C1B60000)16答:定点格式答:定点格式,浮点格式浮点格式二、二、数的机器码表示:数的机器码表示:真值:书写用的
9、数,机器码:机器内部使用的数真值:书写用的数,机器码:机器内部使用的数1)原码:原码:比较自然的表示法,最高位表示符号,比较自然的表示法,最高位表示符号,0为正,为正,1为负。为负。优点:简单易懂。缺点:加减法运算复杂。优点:简单易懂。缺点:加减法运算复杂。若定点小数的原码形式为若定点小数的原码形式为x0.x1x2.xn,则原码表示的定义是则原码表示的定义是X原原=X1X0X原原=1-X=1+|X|0X-1式中式中X原原是机器数,是机器数,X是真值。是真值。例如,例如,X=+0.1001,则则X原原=0.1001X=-0.1001,则则X原原=1.1001通常,对于正数通常,对于正数X=+0.
10、x1x2xn,则有则有:X原原=0.x1x2.xn对于负数对于负数X=-0.x1x2xn,则有则有:X原原=1.x1x2.xn对于对于0,原码机器中往往有,原码机器中往往有“+0”、“-0”之分,故有两种形式:之分,故有两种形式:+0原原=0.0000.0-0原原=1.0000.0若定点整数的原码形式为若定点整数的原码形式为x0 x1x2.xn,则原码表示的定义是则原码表示的定义是:X原原=X2nX0X原原=2n-X=2n+|X|0X-2n2)补码:补码:加减法运算方便,减法可以转换为加法。加减法运算方便,减法可以转换为加法。若定点小数的补码形式为若定点小数的补码形式为x0.x1x2.xn,则
11、补码表示的定义是则补码表示的定义是:X补补=X1X0X补补=2+X=2-|X|0X-1(mod2)式中式中X补补为机器数,为机器数,X为真值。为真值。例如,例如,X=+0.1011,则则X补补=0.1011X=-0.1011,则,则X补补=10+X=10.0000-0.1011=1.0101一般情况下,对于正数一般情况下,对于正数X=+0.x1x2.xn,则有则有:X补补=0.x1x2.xn对于负数对于负数X=-0.x1x2.xn,则有则有:X补补=10.00.0-0.x1x2.xn(mod2)对于对于0,在补码情况下,在补码情况下,+0补补=-0补补=0.0000(mod2)注意,注意,0的
12、补码表示只有一种形式。对的补码表示只有一种形式。对2求补电路见图求补电路见图2.6对于定点整数,补码表示的定义是对于定点整数,补码表示的定义是:X补补=X2nX0X补补=2n+1+X=2n+1-|X|0X-2n(mod2n+1)3)反码:反码:将二进制数的各位数码将二进制数的各位数码0变为变为1,1变为变为0。它是为计算补。它是为计算补码方便而引入码方便而引入.对定点小数,反码表示的定义为对定点小数,反码表示的定义为X反反=X1X0X反反=(2-2-n)+X0X-1其中其中n代表数的位数。代表数的位数。一般情况下,对于正数一般情况下,对于正数X=+0.x1x2.xn,则有则有X反反=0.x1x
13、2.xn对于负数对于负数X=-0.x1x2.xn,则有则有X反反=1.x1x2.xn对于对于0,有,有+0反反=-0反反之分:之分:+0反反=0.00.0-0反反=1.11.1我们比较反码与补码的公式我们比较反码与补码的公式X反反=2-2-n+XX补补=2+X可得到可得到X补补=X反反+2-n若要一个负数变补码,其方法是符号位置若要一个负数变补码,其方法是符号位置1,其余各位,其余各位0变变1,1变变0,然后在最末位(,然后在最末位(2-n)上加上加1。对定点整数,反码表示的定义是对定点整数,反码表示的定义是X反反=X2nX0X反反=(2n+1-1)+X0X-2n若要一个负数变补码,只要将符号
14、位置若要一个负数变补码,只要将符号位置1,各位取反,末位加,各位取反,末位加1。4)移码:移码:用于阶码的表示,两个移码容易比较大小,便于对阶。用于阶码的表示,两个移码容易比较大小,便于对阶。由于阶码是个由于阶码是个n位的整数,所以假定定点整数移码形式为位的整数,所以假定定点整数移码形式为x0 x1x2.xn时,移码的定义是:时,移码的定义是:X移移=2n+X,2nX-2n式中式中X移移为机器数,为机器数,X为真值。即将数值向为真值。即将数值向X轴正方向平移轴正方向平移2n若阶码数值部分为若阶码数值部分为5位,以位,以x表示真值,则表示真值,则X移移=25+X,25X-25例如,当正数例如,当
15、正数x=+10101时,时,X移移=1,10101;当负数;当负数x=-10101时,时,X移移=25+X=25-10101=0,01011。移码中的逗号不是小数点,而是。移码中的逗号不是小数点,而是表示左边一位是符号位。显然,移码中符号位表示左边一位是符号位。显然,移码中符号位x0表示的规律与原码、表示的规律与原码、补码、反码相反。补码、反码相反。一、计算:一、计算:1、x=23/128x补补=x原原=2、x=-35/64x补补=x原原=3、x+y=1010 x+y补补=x+y原原=4、x-y=-1101x-y补补=x-y原原=二、设机器字长为二、设机器字长为5位位,采用定点整数表示,采用定
16、点整数表示,x=+110,求求x原原,x补补解:因为解:因为n+1=5,所以,所以n=4,x原原=0,0110 x补补=0,0110 x0 x1x4显然,正数的原码与补码形式相同。显然,正数的原码与补码形式相同。三、设机器字长三、设机器字长8位并用定点整数表示位并用定点整数表示,模为模为28,若若x=-110,求求x原原,x补补。解:因为解:因为n+1=8,所以,所以n=7,x原原=10000110 x补补=M+x=28+(-110)=(100000000)2-110=11111010四、由补码求原码与真值:四、由补码求原码与真值:对于正数,原码与补码相同,其真值在对于正数,原码与补码相同,其
17、真值在略去正号后,形式上与机器数相同;对于负数,保持符号位为略去正号后,形式上与机器数相同;对于负数,保持符号位为1,其余各位变反末位加其余各位变反末位加1,即得到原码表示,将负数原码符号恢复为,即得到原码表示,将负数原码符号恢复为负号,即得到真值表示。负号,即得到真值表示。例:如例:如x补补=00000110,则,则x原原=00000110,x=+110如如x补补=11111010,则,则x原原=10000110,所以,所以x=-110 x原原的具体计算如下:的具体计算如下:x补补=11111010变反变反10000101末位加末位加1+110000110五、补码的性质五、补码的性质:补码的
18、最高位是符号位,在形式上同于原码,补码的最高位是符号位,在形式上同于原码,0表示正,表示正,1表示负。但应注意,原码的符号位是人为地定义表示负。但应注意,原码的符号位是人为地定义0正正1负;负;而补码的符号位是通过模运算得到的,它是数值的一部分,可直接而补码的符号位是通过模运算得到的,它是数值的一部分,可直接参与运算。参与运算。例例3以定点整数为例,用数轴形式说明原码、反码、补码表示范以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。围和可能的数码组合情况。解:原码、反码、补码表示分别示于下图。与原码、反码不同,解:原码、反码、补码表示分别示于下图。与原码、反码不同,
19、在补码表示中在补码表示中“0”只有一种形式,且用补码表示负数时范围可到只有一种形式,且用补码表示负数时范围可到-2n。11.110.0110.000.000.0101.1-(2n-1)-10+1+(2n-1)原码原码10.011.1011.100.000.0101.1-(2n-1)-10+1+(2n-1)反码反码10.010.0111.100.000.0101.1-2n-(2n-1)-10+1+(2n-1)补码补码例例4设机器字长设机器字长16位,定点表示,尾数位,定点表示,尾数15位,数符位,数符1位,问:位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?)定点原码整数表示时
20、,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?)定点原码小数表示时,最大正数是多少?最小负数是多少?解:(解:(1)定点原码整数表示)定点原码整数表示最大正数值最大正数值=(215-1)10=(+32767)100111111111111111最小负数值最小负数值=-(215-1)10=(-32767)101111111111111111(2)定点原码小数表示)定点原码小数表示最大正数值最大正数值=(1-2-15)10=(+0.111.11)2最小负数值最小负数值=-(1-2-15)10=(-0.111.11)2例例5假设由假设由S,E,M三个域组
21、成的一个三个域组成的一个32位二进制字所表示的非位二进制字所表示的非零规格化浮点数零规格化浮点数x,真值表示为:,真值表示为:x=(-1)s*(1.M)*2E-128问:它所表示的规格化的最大正数、最小正数、最大负数、最小问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?负数是多少?解:解:(1)最大正数)最大正数01111111111111111111111111111111X=1(1-2-23)*2127(2)最小正数)最小正数00000000000000000000000000000000X=1.0*2-128(3)最小负数)最小负数111111111111111111
22、11111111111111X=-1+(1-2-23)*2127(4)最大负数)最大负数10000000000000000000000000000000X=-1.0*2-1282.1.3字符与字符串的表示方式字符与字符串的表示方式:ASCII码:码:P28表表2.12.1.4汉字的表示方式汉字的表示方式:1)输入码输入码:用于汉字输入。数字编码、拼音码、字形编码。:用于汉字输入。数字编码、拼音码、字形编码。2)内码内码:用于汉字的存储、交换、检索等操作的机内代码,一般:用于汉字的存储、交换、检索等操作的机内代码,一般采用两个字节表示。采用两个字节表示。3)字模码字模码:是用点阵表示的汉字字形代
23、码,它是汉字的输出形式,:是用点阵表示的汉字字形代码,它是汉字的输出形式,用于汉字的显示。用于汉字的显示。2.1.5校验码校验码奇、偶校验码:奇偶校验码是一种开销最小奇、偶校验码:奇偶校验码是一种开销最小,能发现数据代码中一,能发现数据代码中一位出错情况的编码,常用于存储器读写检查,或位出错情况的编码,常用于存储器读写检查,或ASCII字符传送过字符传送过程中的检查。它所约定的编码规律是让整个校验码(包括有效信息程中的检查。它所约定的编码规律是让整个校验码(包括有效信息和校验位)和校验位)“1”的个数为奇数或为偶数。有效信息部分当然既可的个数为奇数或为偶数。有效信息部分当然既可能是奇性也可能是
24、偶性,但可以配上一个为能是奇性也可能是偶性,但可以配上一个为0或为或为1的校验位,使整的校验位,使整个校验码能满足指定的奇偶性要求。个校验码能满足指定的奇偶性要求。由于有效信息的奇偶性只有两种可能:奇偶,所以只需配一由于有效信息的奇偶性只有两种可能:奇偶,所以只需配一位校验位。则奇校验就是使整个奇校验码位校验位。则奇校验就是使整个奇校验码“1”的个数为奇数。偶的个数为奇数。偶校验法就是使整个校验码校验法就是使整个校验码“1”的个数为偶数。的个数为偶数。例例1:有效信息有效信息1011001奇校验码奇校验码10110011偶校验码偶校验码10110010例例2:有效信息有效信息1011011奇校
25、验码奇校验码10110110偶校验码偶校验码10110111译码:当从主存读出某数据时,将整个校验码(连同校验位)译码:当从主存读出某数据时,将整个校验码(连同校验位)一道统计。若一道统计。若“1”的个数仍为偶数就认为该数是正确的,没的个数仍为偶数就认为该数是正确的,没有破坏原来约定的规律。若有破坏原来约定的规律。若“1”的个数为奇数,表明有错,的个数为奇数,表明有错,应停止使用这个数据,或重新读取,看是否属于偶然性错误。应停止使用这个数据,或重新读取,看是否属于偶然性错误。2.22.2定点加法减法运算定点加法减法运算一、补码加法一、补码加法公式公式:X补补+Y补补=X+Y补补(mod2)例例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 运算 方法 运算器
限制150内