数据的表示及运算基础.ppt_第1页
数据的表示及运算基础.ppt_第2页
数据的表示及运算基础.ppt_第3页
数据的表示及运算基础.ppt_第4页
数据的表示及运算基础.ppt_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

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

文档简介

2019/9/19,1,第2章 数据的表示及运算基础,计算机组成原理第 2章,2019/9/19,2,内容概览,2.1 数据的表示 2.2 数的机器码表示 2.3 补码加减法运算 2.4 定点乘法运算 2.5 定点除法运算 2.6 定点运算器的组成 2.7 浮点数的表示方法 2.8 数据校验码,2019/9/19,3,2.1 数据的表示,2.1.1 数字数据的表示 2.1.2 计算机中数的表示格式 2.1.3 十进制数的编码与运算 2.1.4 字符数据的表示,2019/9/19,4,2.1.1 数字数据的表示,进位记数制及其转换 进位记数制是指按照进位制的方法表示数。计算机中一般采用二进制数来表示 权:在进位记数制中,表示数值大小的数字与它在数中的位置有关,同一数字处于不同的数位时表示的数值是不同的,即权不同。 基数:表示某种进位记数制所拥有的数字的个数 一个数可以用其基数和权表示出来:,即,2019/9/19,5,常用的进位记数制,1十进制 2二进制 3八进制 4十六进制,2019/9/19,6,二进制与十进制数间的转换,二进制数十进制数:将每个二进制数据按权展开求和 。 十进制数二进制数:将十进制数的整数部分与小数部分分开处理。 整数部分: “除2取余法”,一直除到商为0为止。第一次除2所得的余数对应为二进制数低位的值,所求各次余数就是所求二进制数的各位值,最后的余数为最高位的值。 小数部分:“乘2取整法”,即每一步将十进制小数部分乘以2,所得积的小数点左边的数字(0或1)作为二进制表示法中的数字,第一次乘法所得的整数部分为最高位。然后将积的分数部分继续作为下一步的被乘数,继续执行乘2操作。,2019/9/19,7,十进制数与非十进制数间转换,八进制、十六进制数十进制:按权相加 十进制数非十进制数:整数部分转换采用“除N取余”的方法,且除到商为0为止。其中N为要转换的进制基数(N为2,8,16,)。小数部分转换采用“乘N取整”的方法,直到乘积的小数部分等于0或者满足要求的精度为止。在书写结果时,构成整数的余数是按反序写下来,而构成小数的整数则是按正序写下来。,2019/9/19,8,非十进制数之间的转换,二进制数与八进制数之间的转换 :以小数点为界,分别向左向右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。 二进制数与十六进制数之间的转换 :以小数点为界,分别向左向右每四位二进制数合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。,2019/9/19,9,2.1.2 计算机中数的表示格式,定点数与浮点数 定点格式:容许的数值范围有限,但要求的处理硬件比较简单 (x=x0x1x2xn ) 定点整数:表示范围 0|x| 2n-1 定点小数:表示范围 0|x| 1-2-n 浮点格式:容许的数值范围很大,但要求的处理硬件比较复杂。 浮点数的一般表示方法:N=Re M 其中,M为尾数(定点小数),R为基数(定点整数),E为阶码(定点整数)。 有符号数和无符号数,2019/9/19,10,2.1.3 十进制数的编码与运算,为了方便人们的使用,一些通用性较强的计算机上也设有十进制数据的表示,以对十进制数直接进行处理。 有权码(Weights) 8421(BCD)码 权重分别是8,4,2,1。 BCD(binary code decimal):以二进制编码的十进制 两数相加之和大于9,要进行加6修正 2421码 权重分别是2,4,2,1。 还有5211,4311码,这些码任何两数相加之和等于9的二进制码互为反码 无权码 余3码 由8421码加3,运算时要修正。 当两个码相加不产生进位时,应从结果中减去3;产生进位时应将进位信号送入高位,本位加3 格雷码 任何两个相邻编码只有一个二进制位不同,而其余三位都相同.编码方案可有多种,2019/9/19,11,2.1.4 字符数据的表示,各种文字、符号、图形、语言和逻辑信息等非数字信息也是计算机的重要处理对象。计算机要完成对这些信息的处理,同样必须完成这些信息在计算机中的表示。这些信息在计算机中都以0或1的形式存在,但并不用来表示数值的大小,所以也称为非数值数据。 字符与字符串的表示 汉字的编码表示 多媒体信息,2019/9/19,12,字符与字符串的表示,要对字符进行识别和处理,必须通过编码的方法,按照一定的规则将字符用一组二进制数编码表示。 常见的字符编码:ASCII码、EBCDIC码等 。 ASCII编码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。,2019/9/19,13,1ASCII码,ASCII码用7位二进制数表示一个字符,总共128个字符元素,包括10个十进制数字(09)、52个英文字母(AZ和az)、34个专用符号和32个控制符号。 (p28) ASCII码表中的编码值031不对应任何可印刷字符,这些编码值对应的字符称为控制字符,用于通信中的通信控制或对计算机设备的功能控制。 扩展ASCII码为8位,是用八位二进制数表示一个字符,因此可以表示256个不同的字符。,2019/9/19,14,2EBCDIC码,EBCDIC码采用8位来代表一个字符。 09十个数字的高4位编码为1111,低4位编码仍为00001001。大小写英文字母的编码均同样满足正常的排序要求,并有简单的对应关系。EBCDIC码将位分成两组各4个位,其中一组叫区域位(Zone bits),另一组叫数值位(Digit bits)。,2019/9/19,15,2EBCDIC码,EBCDIC码的区域位(高4位)的取值代表不同的意义,例如第7位和第6位全取1则表示大写字母和数值;第7位取1,第6位取0则代表小写字母;第5位和第4位全取0代表大写字母AI等。,2019/9/19,16,3字符串的存放,通常占用主存连续空间连续存放多个字节.,2019/9/19,17,4数字串的存放,字符形式 以ASCII码形式存放,即一个字节存放一个十进制数位或符号位 压缩方式 用一个字节存放两个十进制数位。其用BCD码(ASCII低4位)表示,符号也占半个字符。,2019/9/19,18,5 汉字的编码表示,汉字的输入编码 国标区位码 拼音码 字形码,2019/9/19,19,5 汉字的编码表示,汉字内码 汉字信息在存储、交换、检索等操作时使用的机内代码,一般采用两个字节表示。且每个字节最高位为1(为区别ASCII码)。 内码=区位码+A0A0H 国标码=区位码+2020H,2019/9/19,20,5 汉字的编码表示,汉字字模码 用点阵、矢量函数等方式表示的汉字字形代码,是汉字的输出形式。,2019/9/19,21,2.2 机器码的表示,真值 机器数(机器码) 最高位表示符号位,符号位为0表示正数;符号位为1表示负数,数值部分用二进制的绝对值表示。 机器码的表示 原码 补码 反码 移码,2019/9/19,22,2.2.1原码表示法,例:x=+0.1101,则x原=0.1101 x=-0.1101, 则x原=1.1101,对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式: +0原=0.0000 -0原=1. 0000,若定点小数的原码形式为X0.X1X2Xn ,则原码 表示的定义为:,2019/9/19,23,原码表示法,若定点整数的原码形式为X0X1X2Xn,则原码表示的定义为:,原码的表示范围: 定点小数: -(1- 2-n) (1- 2-n) 定点整数: -(2n -1) (2n - 1),2019/9/19,24,原码表示法,原码表示法简单易懂,但其最大缺点是加法运算复杂。当两数想加时,如果是同号则数值相加;如果是异号则要进行减法。而在进行减法时,还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择恰当的符号。为解决这个问题,可以通过补码方式。,2019/9/19,25,2.2.2 补码表示法,模(模数) 模操作(模运算) 补码,2019/9/19,26,补码表示法,若定点小数的补码形式为X0.X1X2Xn,则补码表示的定义是:,其中X补为机器数,x为真值。,2019/9/19,27,补码表示法,例: X= +0.11001,则X补=0.11001 X =-0.11001,则X补=10+x=10.0000-0.11001=1.00111 一般情况下,对正数x=+0. X1X2Xn,则有 X补=0. X1X2Xn 对负数x=- 0. X1X2Xn,则有: X补=10.000-0. X1X2Xn (mod 2) 对于0,在补码情况下, +0补 = -0补=0.0000 (mod 2),即只有一种形式。,2019/9/19,28,补码表示法,对定点整数,补码的定义是:,(mod 2n+1),2019/9/19,29,补码的特点,“0”的表示唯一 符号位可以参与运算 运算规则 X+Y补= X补+ Y补 mod 2 X -Y补= X补+ -Y补 mod 2 利用补码可以将减法运算变成加法运算来实现。 但是根据补码定义,求负数的补码要从2减去|X|。如何解决? 利用补码实现减法运算,可以和常规的加法运算使用用一加法器电路,从而简化了计算机的设计。,2019/9/19,30,2.2.3 反码表示法,所谓反码,就是将二进制数的各位数码0变为1,1变为0。,X反=,X 1 x 0,(2-2-n)+x 0 x -1,定点小数的反码表示:n 代表数的位数,2019/9/19,31,反码表示法,定点整数的反码表示:,X反=,X 2n x 0,(2n+1-1)+x 0 x -2n,2019/9/19,32,反码表示法,求反码规则:正数的反码就等于真值,负数的反码是将其原码除符号位以外的各位按位取反。 负数的补码为其反码在最低位加1,例如,x=1010,则x反 = 01010 x=-1010,则x反 = (2n+1 1)+x = (25 1) +(-1010) = 11111-1010 = 10101 在反码表示中,0有+0和-0之分,所以也有两种反码表示形式:,2019/9/19,33,2.2.5三种码制的比较与转换,对正数来说,原码、补码和反码都等于真值,但对负数各有不同的表示。 0的原码和反码各有两种不同的表示形式,而补码只有一种表示形式。 三者的最高位都是符号位。 原码、反码表示的正、负数范围相对于0来说是对称的;但补码负数表示范围较正数表示范围大,其值等于-2n(定点整数)或-1(定点小数)。,2019/9/19,34,2.2.5 三种码制的比较与转换,设n=8,则原码、反码的表示范围是+(27-1)-(27-1)即+127-127 补码的表示范围是:+(27-1)-(27) 即+127-128 已知真值X1=+78,X2=-78求x原、x反、x补。 例:X1=+78=+4EH=0100110B x1原=01001110 x1反=01001110 x1补=01001110 X2=-78=-4EH=-01001110B x2原=11001110 x2反=10110001 x2补=10110010,2019/9/19,35,原码、反码与补码,例:已知x补=11101110,求-x补、x反、x原及真值x。 解:-x补=00010010 (x补取反加1) x反=11101101 (x补减1) x原=10010010 (x原低7位取反) 真值x=-0010010B=-12H=-18D,2019/9/19,36,2.3 补码加减运算,2.3.1 补码加法 2.3.2 补码减法 2.3.3 溢出概念及判断方法 2.3.4 定点加法器,2019/9/19,37,2.3.1 补码加法(1),X补+ Y补= X+Y补 现分四种情况来证明 (1)0,0,则0。 相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得: 补补补 (mod 2),2019/9/19,38,补码加法(2),(2)0,0,则0或0时,2 () 2, 2必丢失, 故 补补补 (mod 2) 当0,则0或 0。,2019/9/19,39,补码加法(3),(4)0,0,则0。 补2, 补2 补补222(2) 故 补补2()补 (mod 2),2019/9/19,40,补码加法(4),例1:0.1001, 0.0101,求。 解: 补0.1001, 补0.0101 补 0.1001 补 0.0101 补 0.1110 所以 0.1110,2019/9/19,41,补码加法(5),例2 0.1011, 0.0101,求。 解: 补0.1011, 补1.1011 补 0.1011 补 1.1011 补 10.0110 所以 0.0110,2019/9/19,42,2.3.2 补码减法,补补补,2019/9/19,43,2.3.3 溢出概念及判断方法,例:几个二进制补码整数加法的例子,01001 + 00101 01110,01100 + 00111 10011,10010 + 00001 10011,10100 + 11001 1 01101,9+5=14,12+7=19,-14+1=-13,(-12)+(-7)=-19,在定点数表示法中,要求参加运算的数以及运算的结果都必须保证落在该定点数所能表示的数值范围内。绝对值小于最小正数的数一般会被当成机器0处理,称为“下溢”;大于最大正数和小于绝对值最大负数的数都称为“上溢”。发生溢出时,计算机将暂时中止运算操作,进行溢出处理。,溢出概念及判断方法,2019/9/19,45,溢出概念及判断方法,双符号位法(变形补码) 运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。 Sf1 SF2 0 0 正确(正数) 0 1 上溢 1 0 下溢 1 1 正确(负数) Sf1 表示正确的符号,逻辑表达式为V=Sf1 Sf2,可以用异或门来实现,2019/9/19,46,溢出概念及判断方法,单符号位法(利用进位) Cf C0 0 0 正确(正数) 0 1 上溢 1 0 下溢 1 1 正确(负数) 故溢出逻辑表达式: VCfCo,其中Cf为符号位产生的进位,Co为最高有效位产生的进位。,2019/9/19,47,溢出概念及判断方法,例:变形补码加法实例,001001 + 000101 001110,001100 + 000111 010011,110010 + 000001 110011,110100 + 111001 1 101101,110110 + 001110 1000100,2019/9/19,48,2.3.4 定点加法器,两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci1。右表中列出一位全加器进行加法运算的输入输出真值表。,一位全加器真值表,2019/9/19,49,FA逻辑电路和框图,FA(全加器)逻辑电路图 FA框图,2019/9/19,50,行波进位的补码加法减法器,2019/9/19,51,作业,P63 1、2、5、6,keywords,进制间转换,BCD码,ASCII码,汉字编码(输入码,内码,字模码),字符串的存放,定点整数和定点小数,浮点数,有符号数和无符号数,机器码,原码、补码和反码(三种编码的表示方法、表示范围),补码加减法运算,溢出及溢出的判断方法,2019/9/19,53,2.4 定点乘法运算,2.4.1 人工乘法 2.4.2 定点原码乘法 定点原码一位乘法 阵列乘法,2019/9/19,54,2.4.1 人工乘法,例:设0.1101,0.1011,求z =,则Z=+0.10001111,2019/9/19,55,2.4.2 定点原码乘法,x原=xf.xn-1x1x0 y原=yf.yn-1y1y0 x.y原=(xf yf)+(0. xn-1x1x0).(0. yn-1y1y0) n位乘n位积可能为2n位. 实现方法 方法一:串行的“加法和移位”,硬件结构简单,但速度太慢(时间延迟太长). 方法二:不带符号位的阵列乘法器,2019/9/19,56,1 定点原码一位乘法,2019/9/19,57,1 定点原码一位乘法,设0.1101,0.1011 求x*y 部分积 乘数 部分积初始化为 0. 0 0 0 0 0 1 0 1 1 部分积右移,前面补 +X 0. 1 1 0 1 乘数最低位为,加上被乘数 - 0 1 1 0 1 0 1 0 1 1 部分积右移,前面补 0. 0 1 1 0 1 0 1 0 1 乘数最低位为,加上被乘数 +X 0 1 1 0 1 - 1 0 0 1 1 1 0 1 0 1 部分积右移,前面补 0 1 0 0 1 1 1 0 1 0 乘数最低位为,加上 +0 0 0 0 0 0 - 0 1 0 0 1 1 1 0 1 0 部分积右移,前面补 0 0 1 0 0 1 1 1 0 1 乘数最低位为,加上被乘数 +X 0 1 1 0 1 - 1 0 0 0 1 1 1 1 0 1 部分积右移,前面补 0. 1 0 0 0 1 1 1 1 0 运算四次结束,数值部分运算,2019/9/19,58,2 阵列乘法,利用阵列乘法器来实现 实现过程类似与人工方法,2019/9/19,59,不带符号位的阵列乘法器,不带符号阵列乘法器逻辑图,2019/9/19,60,不带符号位的阵列乘法器,2019/9/19,61,不带符号的阵列乘法器,mXn位不带符号的阵列乘法器框图,2019/9/19,62,3 带符号位的阵列乘法器,求补电路,2019/9/19,63,带符号的阵列乘法器,原理:算前求补乘法器算后求补,2019/9/19,64,2.5 定点除法运算,2.5.1 人工算法 2.5.2 原码一位除法 恢复余数法 不恢复余数法(加减交替法) 2.5.3 并行除法器,2019/9/19,65,2.5.1 人工算法,例:设被除数0.1001,除数0.1011,模仿十进制除法运算,以手算方法求的过程如下: 0.1 1 0 1 0.1 0 1 1 0.1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0.0 0 0 0 0 0 0 1 得的商q0.1101,余数为r0.00000001。,2019/9/19,66,2.5.2 定点除法运算,0.1 1 0 1 商q 0.1 0 1 1 0.1 0 0 1 0 (r0) 被除数 0.0 1 0 1 1 21 除数右移1位,减除数 0.0 0 1 1 1 0 r1 得余数r1 0.0 0 1 0 1 1 22 除数右移1位,减除数 0.0 0 0 0 1 1 0 r2 得余数r2 0.0 0 0 0 0 0 0 23 除数右移1位,不减除数 0.0 0 0 0 1 1 0 0 r3 得余数r3 0.0 0 0 0 1 0 1 1 24 除数右移1位,减除数 0.0 0 0 0 0 0 0 1 r4 得余数r4,商0还是商1人可以比较后确定,计算机如何确定? 余数末位补0后,减去除数右移后的值,导致加法器尾数逐渐增多,最后要求加法器的位数必须位被除数的两倍,定点原码一位除法实现方案(手工),2019/9/19,67,恢复余数法(例),2019/9/19,68,加减交替法(不恢复余数法),在恢复余数除法中,若第i-1次求商的余数Ri-1 0,则第i次求商的余数: 余数左移一位,再减去除数,既:Ri=2Ri-1-Y 若Ri0, 则 第i位的商上1 下一位商的余数: Ri+1=2Ri-Y 若Ri恢复余数为Ri+Y 下一位商的余数: Ri+1=2(Ri+Y)-Y=2Ri+Y 说明:若最后一次上商为0,但需得到正确余数,则需恢复余数,2019/9/19,69,加减交替法(不恢复余数法),2019/9/19,70,2.5.3 阵列除法器,可控加法/减法(CAS)单元,2019/9/19,71,不恢复余数的阵列除法器,2019/9/19,72,举例p44,例230.101001, 0.111, 求。 解: 补1.001 除数右移 被除数 0.1 0 1 0 0 1 减 1.0 0 1 余数为负 1.1 1 0 0 0 1 0 q00 加 0.0 1 1 1 余数为正 0.0 0 1 1 0 1 0 q11 减 1.1 1 0 0 1 余数为负 1.1 1 1 1 1 1 0 q20 加 0.0 0 0 1 1 1 余数为正 0.0 0 0 1 1 0 0 q31 故得 商 qq0.q1q2q30.101 余数 r(0.00r3r4r5r6)0.000110,2019/9/19,73,2.6 定点运算器的组成,逻辑运算(简) 逻辑非 逻辑加 逻辑乘 逻辑异或 按位加,按位的模2和 多功能算术/逻辑运算单元(ALU) 内部总线结构,2019/9/19,74,先行进位(超前进位),四位串行加法器,C1 = X1Y1+(X1+Y1)C0 = G1+P1C0,Gi = XiYi 称为进位产生函数 Pi = Xi+Yi 称为进位传递函数,2019/9/19,75,C2= X2Y2+(X2+Y2) C1 = X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0 = G2+P2G1+P2P1C0 C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0,ALU的逻辑图与逻辑表达式,XiYi 与控制参数和输入量的关系构造如下真值表,多功能算术/逻辑运算单元ALU,多功能算术/逻辑运算单元ALU,可以证明:Xi+Yi=Xi Xi.Yi=Yi(自己试试看),进一步化简得到下式,多功能算术/逻辑运算单元ALU,ALU的某一位逻辑表达式见下:,多功能算术/逻辑运算单元ALU,4位之间采用先行公式,每一位的进位公式可递推如下: Cn1Y0X0Cn Cn2Y1X1Cn1 Y1Y0X1X0X1Cn Cn3Y2X2Cn2 Y2Y1X1Y0X1X2X0X1X2Cn Cn4Y3X3Cn3 Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn,多功能算术/逻辑运算单元ALU,令GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3 G为进位发生输出 P为进位传送输出 增加P和G的目的在于实现多片(组)ALU之间的先行进位,需要配合电路,称为先行进位发生器(CLA) 器件: 74181,2019/9/19,82,负逻辑操作数表示的74181ALU逻辑电路图,2019/9/19,83,74181ALU算术/逻辑运算功能表,2019/9/19,84,74181ALU的逻辑电路图和方框图,负逻辑操作数,正逻辑操作数,2019/9/19,85,两级先行进位的ALU,74182的逻辑电路图,如果将四片74181的P,G输出端送入到74182先行进位部件(CLA),又可实现第二级的先行进位,即组与组之间的先行进位。,2019/9/19,86,内部总线,内部总线 机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。 逻辑结构 单向传送总线 双向传送总线,2019/9/19,87,三态门组成的双向数据总线,2019/9/19,88,由三态门组成的数据总线,2019/9/19,89,内部总线结构,单总线结构运算器,2019/9/19,90,双总线结构运算器,2019/9/19,91,三总线结构运算器,2019/9/19,92,2.7 浮点数的表示方法,2.7.1 浮点数格式,在位数给定情况下,尾数位数越多,则表示的精度越高;阶码位数越多,则表示的范围越大。在实际应用中应兼顾两者。,2019/9/19,93,2.7.2 规格化(normalized),数据规格化的目的是为了提高精度。 规格化数的表示:计算机规定浮点数尾数部分用纯小数形式表示,而且 原码:尾数的最高位为1。 补码:尾数的最高位与符号位相反. 一个非规格化浮点数有多种表示形式,但规格化浮点数只有唯一的表示形式。 非规格化浮点数:0.000101*2-011, 0.00101*2-100, 0.0101*2-101 规格化浮点数:0.101*2-110,2019/9/19,94,2.7.3 舍入操作,舍入操作出现在: 双精度浮点数转化为单精度浮点数 浮点数转化为整型 IEEE754标准中的舍入方法: Truncate Just drop the last bits (round towards 0) Round to (nearest) even Normal rounding (default mode) Round towards +infinity ALWAYS round “up”: 2.001 3, -2.001 -2 Round towards -infinity ALWAYS round “down”: 1.999 1, -1.999 -2,2019/9/19,95,舍入操作,2019/9/19,96,舍入操作,x = 1.5 1038, y = 1.5 1038, and z = 1.0 x + (y + z)= 1.5 1038+ (1.5 1038+ 1.0) = 1.5 1038+ (1.5 1038) = 0.0 (x + y) + z= (1.5 1038+ 1.5 1038) + 1.0 = (0.0) + 1.0 = 1.0 x + (y + z) (x + y) + z,2019/9/19,97,2.7.4 浮点数的溢出,阶码上溢 超过了阶码可能表示的最大值的正指数值,一般将其认为是和。 阶码下溢 超过了阶码可能表示的最小值的负指数值,一般将其认为是0。 尾数上溢 两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增1来重新对齐。 尾数下溢 在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。,2019/9/19,98,2.7.5 IEEE 754浮点数格式(1),Exponent Significand,8位,23位,S,Exponent Significand,11位,52位,S,32位浮点数格式:,64位浮点数格式:,规格化数 +1.xxxxxxxxxxtwo2yyyytwo,2019/9/19,99,阶码 8 bits single, 11 bits double 尾数 1+ 23 bits single, 1+ 52 bits double 为了表示更多的位数,尾数首位1隐含 阶码全为0,尾数部分全为0时,浮点数为0 32位浮点数表示范围 2.0 10-38to 2.0 1038,2.7.5 IEEE 754浮点数格式(2),2019/9/19,100,比较两个浮点数的大小,应遵循以下步骤 先比较符号位:负数正数 再比较阶码: 阶码大的数大 最后比较尾数:阶码相同,尾数大的数大 例:比较1.0X2-1(1/2)和1.0X2+1(2),补码. 如果阶码用整型数比较, 1/22? 阶码用移码表示,2.7.5 IEEE 754浮点数格式(3),2019/9/19,101,移码表示法,移码用整数形式表示浮点数的阶码方法。 移码的定义: X移=2n +X (-2n = x 2n) n为阶码数值位(除符号位) 移码的计算:先求出X的补码,再对其符号位取反或直接利用定义计算。,2019/9/19,102,移码的特点,在移码中,最高位为“0”表示负数,最高位为“1”表示正数。 移码为全0时,它所对应的真值最小,为全1时,它所对应的真值最大。因此,移码的大小比较直观地反映了真值的大小,这有助于比较两个浮点数阶码的大小。 真值0在移码中的表示形式是唯一的, 即+0移=-0移 = 1000。 移码把真值映射到一个正数域,所以可将移码视为无符号数,直接按无符号数规则比较大小。 同一数值的移码和补码除最高位相反外,其他各位相同。,2019/9/19,103,移码表示法(举例),例:求当n=4时,X1=+0111和X2=-0101的移码是多少? 解:方法1)X1移=24+0111=10000+0111=10111 X1移=24+(-0101)=10000-0101=01011 方法2) X1补=00111, X1移=10111, X2补=11011,X2移=01011 注意:移码中的点号并不表示小数点,而是表示左边一位是符号位。移码中符号位表示的规律与原码、补码和反码相反。,2019/9/19,104,浮点数中移码表示阶码说明,阶码E全为0且尾数M全为0时,表示真值X为零 结合符号位S,有正零和负零之分 阶码E全为1且尾数M全为0时,表示真值X为无穷大 结合符号位S,有正无穷和负无穷之分 故32位浮点数中要除去E用全0和全1(255)的特殊情况,故指数偏移值不选128,而选127 E的范围变为1到254,则指数e为-126到127 32位浮点数绝对值范围是10-38到1038,2019/9/19,105,2.7.5 IEEE 754浮点数格式(4),选择127为偏移量(单精度) SP Value = (-1)S(1 + Significand) 2(Exponent-127) DP Value = (-1)S(1 + Significand) 2(Exponent-1023),2019/9/19,106,2.7.5 IEEE 754浮点数格式(5),例1若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。 解:将16进制数展开后,可得二制数格式为 0 100 00010011 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)S1.M2e=+(1.011011)23=+1011.011=(11.375)10,例2将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。 解:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.01001001124 e=4于是得到: S=0, E=4+127=131, M=010010011 最后得到32位浮点数的二进制存储格式为: 01000001101001001100000000000000=(41A4C000)16,2019/9/19,107,2.7.5 IEEE 754浮点数格式(6),2019/9/19,108,2.7.6 浮点数的加减法运算,零操作数检查 对阶(小阶向大阶看齐) 尾数相加减 规格化 舍入操作 溢出判断,2019/9/19,109,2.7.7 浮点数的乘除法运算,尾数相乘除 阶码相加减,2019/9/19,110,2.7.8 流水线浮点运算器,Aa2P, Bb2q 在4级流水线加法器中实现上述浮点加法时,分为以下操作: (1) 求阶差 (2) 对阶 (3) 相加

温馨提示

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

评论

0/150

提交评论