计算机组成原理第2章-运算方法和运算器.ppt
《计算机组成原理第2章-运算方法和运算器.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第2章-运算方法和运算器.ppt(49页珍藏版)》请在三一办公上搜索。
1、第二章:运算方法和运算器,21 数据与文字的表示方法 22 定点加法、减法运算 23 定点乘法运算 24 定点除法运算 25 定点运算器的组成 26 浮点运算方法和浮点运算器,21 数据与文字的表示方法一、计算机中常用的数据表示格式:定点格式,浮点格式.1、定点格式:约定机器中所有数据的小数点位置是固定不变的。将数据表示成定点纯小数或定点纯整数。假设用一个n+1位字来表示一个定点数X,在定点机中可表示为如下形式:X0 X1 X2.Xn-1 Xn 符号 量值(尾数)如果数X表示的是纯小数:0|X|1-2-n 如果数X表示的是纯整数:0|X|2n-12、浮点表示法,即小数点的位置是浮动的:N=Re
2、.m 其中m称为浮点数的尾数,用定点小数表示。e称为浮点的指数,是一个整数,常称为阶码。比例因子的基数R对二进计数制的机器是一个常数,一般规定R为2,8或16。因此一个机器浮点数应当由阶码和尾数及其符号位组成:阶符 阶码 数符 尾数,31 30 23 22 0 IEEE标准:32位浮点数 32位浮点数中,S是浮点数的符号位,占1位,安排在最高位,S=0表示正数,S=1表示负数。M是尾数,放在低位部分,占有23位,用小数表示,小数点放在尾数域的最前面。E是阶码,占有8位,阶符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大
3、。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。一个规格化的32位浮点数x的真值可表示为:x=(1)s(1.M)2E127 e=E127 其中尾数域所表示的值是1.M。因为规格化的浮点数的尾数域最左位(最高有效位)总是1。故这一位经常不予存储,而认为隐藏在小数点的左边。64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数x的真值为:x=(1)s(1.M)2E1023 e=E1023,例1若浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值
4、。解:将16进制数展开后,可得二进制数格式为 0 100 0001 0011 0110 0000 0000 0000 0000 S 阶码(8位)尾数(23位)指数e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)s*1.M*2e=+(1.011011)*23=+1011.011=(11.375)10 例2将十进制数20.59375转换成32位浮点数的二进制格式来存储。解:首先分别将整数和分数部分转换成二进制数:20.59375=1010
5、0.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.010010011*24 e=4 于是得到:S=0,E=4+127=131=10000011,M=010010011 最后得到32位浮点数的二进制存储格式为:0100 0001 1010 0100 1100 0000 0000 0000=(41A4C000)16,思考题:问:1、计算机中常用的数据表示格式?2、按照IEEE754标准,32位浮点数的标准格式包含哪几部分?3、对于真值:x=-1.01101102100 如何用32位浮点数的标准格式表示?,答:定点格式,浮点格式,二、数的机器码表示:真值:书写用的数,
6、机器码:机器内部使用的数1)原码:比较自然的表示法,最高位表示符号,0为正,1为负。优点:简单易懂。缺点:加减法运算复杂。若定点小数的原码形式为x0.x1x2.xn,则原码表示的定义是 X原=X 1X0X原=1-X=1+|X|0X-1 式中X原是机器数,X是真值。例如,X=+0.1001,则X原=0.1001 X=-0.1001,则X原=1.1001 通常,对于正数X=+0.x1x2xn,则有:X原=0.x1x2.xn 对于负数X=-0.x1x2xn,则有:X原=1.x1x2.xn 对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式:+0原=0.0000.0-0原=1.0000.0
7、若定点整数的原码形式为x0 x1x2.xn,则原码表示的定义是:X原=X 2nX0 X原=2n-X=2n+|X|0X-2n,2)补码:加减法运算方便,减法可以转换为加法。若定点小数的补码形式为 x0.x1x2.xn,则补码表示的定义是:X补=X 1X0 X补=2+X=2-|X|0X-1(mod 2)式中X补为机器数,X为真值。例如,X=+0.1011,则X补=0.1011 X=-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
8、.x1x2.xn(mod 2)对于0,在补码情况下,+0补=-0补=0.0000(mod 2)注意,0的补码表示只有一种形式。对2求补电路见图2.6 对于定点整数,补码表示的定义是:X补=X 2nX0 X补=2n+1+X=2n+1-|X|0X-2n(mod 2n+1)3)反码:将二进制数的各位数码0变为1,1变为0。它是为计算补码方便而引入.,对定点小数,反码表示的定义为 X反=X 1X0 X反=(2-2-n)+X 0X-1 其中n代表数的位数。一般情况下,对于正数X=+0.x1x2.xn,则有 X反=0.x1x2.xn 对于负数X=-0.x1x2.xn,则有 X反=1.x1x2.xn 对于0
9、,有+0反=-0反之分:+0反=0.00.0-0反=1.11.1 我们比较反码与补码的公式 X反=2-2-n+X X补=2+X 可得到 X补=X反+2-n,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。对定点整数,反码表示的定义是 X反=X 2nX0 X反=(2n+1-1)+X 0X-2n 若要一个负数变补码,只要将符号位置1,各位取反,末位加1。4)移码:用于阶码的表示,两个移码容易比较大小,便于对阶。由于阶码是个n位的整数,所以假定定点整数移码形式为x0 x1x2.xn时,移码的定义是:X移=2n+X,2nX-2n 式中X移为机器数,X为真值
10、。即将数值向X轴正方向平移2n 若阶码数值部分为5位,以 x表示真值,则 X移=25+X,25X-25 例如,当正数x=+10101时,X移=1,10101;当负数x=-10101时,X移=25+X=25-10101=0,01011。移码中的逗号不是小数点,而是表示左边一位是符号位。显然,移码中符号位x0表示的规律与原码、补码、反码相反。,一、计算:1、x=23/128 x补=x原=2、x=-35/64 x补=x原=3、x+y=1010 x+y补=x+y原=4、x-y=-1101 x-y补=x-y原=二、设机器字长为5位,采用定点整数表示,x=+110,求x原,x补解:因为n+1=5,所以n=
11、4,x原=0,0 1 1 0 x补=0,0 1 1 0 x0 x1 x4 显然,正数的原码与补码形式相同。三、设机器字长8位并用定点整数表示,模为28,若x=-110,求x原,x补。解:因为n+1=8,所以n=7,x原=10000110 x补=M+x=28+(-110)=(100000000)2-110=11111010,四、由补码求原码与真值:对于正数,原码与补码相同,其真值在略去正号后,形式上与机器数相同;对于负数,保持符号位为1,其余各位变反末位加1,即得到原码表示,将负数原码符号恢复为负号,即得到真值表示。例:如x补=00000110,则x原=00000110,x=+110 如x补=1
12、1111010,则x原=10000110,所以 x=-110 x原的具体计算如下:x补=11111010 变反 10000101 末位加1+1 10000110 五、补码的性质:补码的最高位是符号位,在形式上同于原码,0表示正,1表示负。但应注意,原码的符号位是人为地定义0正1负;而补码的符号位是通过模运算得到的,它是数值的一部分,可直接参与运算。,例3以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。解:原码、反码、补码表示分别示于下图。与原码、反码不同,在补码表示中“0”只有一种形式,且用补码表示负数时范围可到-2n。11.1 10.01 10.0 00.0 00
13、.01 01.1-(2n-1)-1 0+1+(2n-1)原码 10.0 11.10 11.1 00.0 00.01 01.1-(2n-1)-1 0+1+(2n-1)反码 10.0 10.01 11.1 00.0 00.01 01.1-2n-(2n-1)-1 0+1+(2n-1)补码,例4设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?解:(1)定点原码整数表示 最大正数值=(215-1)10=(+32767)10 0 111 111 111 111 111 最小负数值=-(
14、215-1)10=(-32767)10 1 111 111 111 111 111(2)定点原码小数表示 最大正数值=(1-2-15)10=(+0.111.11)2 最小负数值=-(1-2-15)10=(-0.111.11)2,例5假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为:x=(-1)s*(1.M)*2E-128 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?解:(1)最大正数 0 11 111 111 111 111 111 111 111 111 111 11 X=1(1-2-23)*2127(2)最小正数 0 00 000
15、 000 000 000 000 000 000 000 000 00 X=1.0*2-128(3)最小负数 1 11 111 111 111 111 111 111 111 111 111 11 X=-1+(1-2-23)*2127(4)最大负数 1 00 000 000 000 000 000 000 000 000 000 00 X=-1.0*2-128,2.1.3 字符与字符串的表示方式:ASCII码:P28 表2.1 2.1.4 汉字的表示方式:1)输入码:用于汉字输入。数字编码、拼音码、字形编码。2)内码:用于汉字的存储、交换、检索等操作的机内代码,一般采用两个字节表示。3)字模码
16、:是用点阵表示的汉字字形代码,它是汉字的输出形式,用于汉字的显示。2.1.5 校验码奇、偶校验码:奇偶校验码是一种开销最小,能发现数据代码中一位出错情况的编码,常用于存储器读写检查,或ASCII字符传送过程中的检查。它所约定的编码规律是让整个校验码(包括有效信息和校验位)“1”的个数为奇数或为偶数。有效信息部分当然既可能是奇性也可能是偶性,但可以配上一个为0或为1的校验位,使整个校验码能满足指定的奇偶性要求。,由于有效信息的奇偶性只有两种可能:奇偶,所以只需配一位校验位。则奇校验就是使整个奇校验码“1”的个数为奇数。偶校验法就是使整个校验码“1”的个数为偶数。例1:有效信息 1011001奇校
17、验码 10110011 偶校验码 10110010例2:有效信息 1011011奇校验码 10110110 偶校验码 10110111译码:当从主存读出某数据时,将整个校验码(连同校验位)一道统计。若“1”的个数仍为偶数就认为该数是正确的,没有破坏原来约定的规律。若“1”的个数为奇数,表明有错,应停止使用这个数据,或重新读取,看是否属于偶然性错误。,2.2定点加法减法运算一、补码加法公式:X补+Y补=X+Y补(mod 2)例1x=0.1001,y=0.0101,求x+y解:x补=0.1001 y补=0.0101 x补 0.1 0 0 1+y补 0.0 1 0 1 x+y补 0.1 1 1 0
18、所以 x+y=+0.1110例2x=+0.1011,y=-0.0101,求x+y。解:x补=0.1011 y补=1.1011 x补 0.1 0 1 1+y补 1.1 0 1 1 x+y补 1 0.0 1 1 0(在模2的意义下相加,有超过2的 所以 x+y=+0.0110 进位要丢掉),二、补码减法公式:x-y补=x补-y补=x补+-y补例3已知x1=-0.1110,x2=+0.1101,求 x1补-x1补 x2补-x2补。解:x1补=1.0010-x1补=x1补+2-4=0.1101+0.0001=0.1110 x2补=0.1101-x2补=x2补+2-4=1.0010+0.0001=1.0
19、011(符号表示对x1补作包括符号位在内的求反操作)例4 x=+0.1101,y=+0.0110,求x-y。解:x补=0.1101 y补=0.0110-y补=1.1010 x补 0.1 1 0 1+-y补 1.1 0 1 0 x-y补 1 0.0 1 1 1 所以 x-y=+0.0111,三、溢出概念与检测方法 溢出概念:在定点小数机器中,数的表示范围为|X|1。在运算过程中如出现大于1的现象,称为“溢出”。在定点机中,正常情况下是不允许的。例5x=+0.1011,y=+0.1001,求x+y。解:x补=0.1011 y补=0.1001 x补 0.1 0 1 1+y补 0.1 0 0 1 x+
20、y补 1.0 1 0 0 两个正数相加的结果成为负数,这显然是错误的。例6x=-0.1101,y=-0.1011,求x+y。解:x补=1.0011 y补=1.0101 x补 1.0 0 1 1+y补 1.0 1 0 1 x+y补 0.1 0 0 0 两个负数相加的结果成为正数,这同样是错误的。,分析:发生错误的原因,是因为运算结果产生了溢出。两个正数相加,结果大于机器所能表示的最大正数,称为上溢。而两个负数相加,结果小于机器所能表示的最小负数,称为下溢。为了判断“溢出”是否发生,可采用两种检测方法。第一种方法是:采用双符号位法,也称为“变形补码”或“模4补码”,从而可使模2补码所能表示的数的范
21、围扩大一倍。数的变形补码定义为:x补=x 当2x0 x补=4+x当0 x-2 或用同余式表示为:x补=4+x(mod 4)下式也同样成立:x补+y补=x+y补(mod 4)为了得到两数变形补码之和等于两数和的变形补码,同样必须:(1)两个符号位都看做数码一样参加运算;(2)两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。采用变形补码后,任何小于1的正数,两个符号位都是(0),即00.x1x2.xn;任何大于-1的负数,两个符号位都是“1”,即11.x1x2.xn如果两个数相加后,其结果的符号位出现“01”或“10”两种组合时,表示发生溢出。这是因为两个绝对值小于1的数相加,其结果不会大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 运算 方法 运算器
链接地址:https://www.31ppt.com/p-6342719.html