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