收藏 分享(赏)

计算机组成原理ch03.ppt

上传人:hskm5268 文档编号:8612580 上传时间:2019-07-06 格式:PPT 页数:47 大小:755.50KB
下载 相关 举报
计算机组成原理ch03.ppt_第1页
第1页 / 共47页
计算机组成原理ch03.ppt_第2页
第2页 / 共47页
计算机组成原理ch03.ppt_第3页
第3页 / 共47页
计算机组成原理ch03.ppt_第4页
第4页 / 共47页
计算机组成原理ch03.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、第三章 数据在机器层次的表示,3.1 数值数据的表示 3.2 数的定点表示与浮点表示 3.3 文字数据的表示 3.4 数据校验码 3.5 小型案例实训 3.6 本章小结 3.7 学习加油站,3.1 数值数据的表示,一、进位计数制与计数制之间的转换 1. 进位计数制的基本概念进位计数制,简称进位制,按进位的方式计数。在日常生活中习惯使用十进制,也用六十进制,如分、秒的计时等。但在计算机内部,数据是以二进制形式表示的。,3.1 数值数据的表示,2. 计算机中常用的进位制 二进制数 0,1 八进制数 0,1,27 十进制数 0,1,29 十六进制数 0,1,29 ,a,b,c,d,e,f,3.1 数

2、值数据的表示,3. 进位计数制与计数制之间的转换 不同进制数的基数不同,所使用的数字的取值范围也不同。 将任意进制数转换为十进制数的方法是“按权相加”,即利用按权展开多项式将系数与位权值相乘后,将乘积逐项求和。,3.1 数值数据的表示,将十进制数转换为任意进制数时,整数部分与小数部分需分别进行转换。 1)利用除基取余法将十进制整数转换为R进制整数的规则: 把被转换的十进制整数除以基数R,所得余数即为R进制整数的最低位数字。 将前次计算所得到的商再除以基数R,所得余数即为R进制整数的相应位数字。 重复步骤,直到商为0为止。,2)利用乘基取整法将十进制小数转换为R进制小数的规则: 把被转换的十进制

3、小数乘以基数R,所得乘积的整数部分即为R进制小数的最高位数字。 将前次计算所得到的乘积的小数部分再乘以基数R,所得新的乘积的整数部分即为R进制小数的相应位数字。 重复步骤,直到乘积的小数部分为0或求得所要求的位数为止。,3.1 数值数据的表示,二进制数与八进制数、十六进制数之间的转换可以利用它们之间的对应关系直接进行转换。 1)将二进制数转换为八进制数的方法: 将二进制数的整数部分从最低有效位开始,每三位二进制数对应一位八进制数,不足三位,高位补0。 将二进制数的小数部分从最高有效位开始,每三位二进制数对应一位八进制数,不足三位,低位补0。 2)将二进制数转换为十六进制数的方法: 将二进制数的

4、整数部分从最低有效位开始,每四位二进制数对应一位十六进制数,不足四位,高位补0。 将二进制数的小数部分从最高有效位开始,每四位二进制数对应一位十六进制数,不足四位,低位补0。,3.1 数值数据的表示,二、无符号数与有符号数 无符号数,就是整个机器字长的全部二进制位均表示数值位(没有符号位),相当于数的绝对值。 有符号数,约定机器字的最高位为符号位,“0”表示正,“1”表示负。常见的表示形式有:原码、反码和补码。,3.1 数值数据的表示,三、原码表示 1. 原码的定义,带符号的绝对值表示,整数,x 为真值,n 为整数的位数,如,x = +1110,x原 = 0 , 1110,x原 = 24 +

5、1110 = 1 , 1110,x原 =,0,x 2n x 0,2n+ x 0 x 2n,用 逗号 将符号位 和数值位隔开,小数,x 为真值,如,x = + 0.1101,x原 = 0 . 1101,x = + 0.1000000,x原 = 0 . 1000000,用 小数点 将符号 位和数值位隔开,用 小数点 将符号 位和数值位隔开,3.1 数值数据的表示,2. 原码中0的表示 纯小数0原码表示: +0原=0.000 -0原=1.000纯整数和的原码表示: +0原=000 - 0原=100,3.1 数值数据的表示,3. 原码的特点 原码表示直观、易懂,与真值的转换容易。 原码表示中0有两种不

6、同的表示形式,给使用带来了不便。通常0的原码用表示,若在计算过程中出现了,则需要用硬件将变为。 原码表示的加减运算复杂。,3.1 数值数据的表示,四、补码表示,时钟,逆时针,顺时针,可见 3 可用 + 9 代替,时钟以12为模,减法 加法,称 + 9 是 3 以 12 为模的补数,结论,一个负数加上 “模” 即得该负数的补数,两个互为补数的数 它们绝对值之和即为 模 数,计数器(模 16), 1011,1011,0000,+ 0101,1011,10000,6.1,3.1 数值数据的表示,2. 补码的定义,整数,x 为真值,n 为整数的位数,如,x = +1010,x补 = 27+1 +( 1

7、011000 ),= 100000000,x补 = 0,1010,x = 1011000,1,0101000,用 逗号 将符号位 和数值位隔开,小数,x 为真值,x = + 0.1110,如,x补 = 0.1110,x = 0.1100000,1.0100000,x补 = 2+( 0.1100000 ),= 10.0000000,3.1 数值数据的表示,3. 特殊补码的表示 真值0的补码表示纯小数: 0补=0.000纯整数 : 0补=0000 -1和-2n的补码表示 纯小数的-1补码表示: -1补=1.000 纯整数-2n补码表示: -2n补=1000 (n个0),3.1 数值数据的表示,4.

8、 由真值、原码转换为补码 当X为正数时, X补= X原 当X为负数时, X补= X反+1,3.1 数值数据的表示,五、反码表示,整数,x反 =,0,x 2n x 0,( 2n+1 1) + x 0 x 2n( mod 2n+1 1),如,x = +1101,x反 = 0,1101,= 1,0010,x = 1101,x反 = (24+1 1) 1101,= 11111 1101,x 为真值,n 为整数的位数,小数,x = +0.1101,x反 = 0.1101,x = 0.1010,x反 = (2 2-4) 0.1010,= 1.0101,如,x反 =,x 1 x 0,( 2 2-n) + x

9、 0 x 1(mod 2 2-n),x 为真值,3.1 数值数据的表示,2. 反码的特点 在反码表示中,用符号位表示数值的正负,形式与原码表示相同,即“0”为正;“1”为负。 在反码表示中,数值0有两种表示方法。 纯小数0反码表示: +0反=0.000 ;-0反=1.111纯整数0反码表示: +0反=0000 ;-0反=1111 反码的表示范围与原码的表示范围相同。注意:纯小数的反码不能表示,纯整数的反码不能表示。,3.2 数的定点表示与浮点表示,一、定点表示 1. 定点小数和定点整数,Sf S1S2 Sn,数符,数值部分,小数点位置,Sf S1S2 Sn,数符,数值部分,小数点位置,或,定点

10、机,小数定点机,整数定点机,原码,补码,反码,(1 2-n) +(1 2-n),(2n 1) +( 2n 1), 1 +(1 2-n),(1 2-n) +(1 2-n),(2n 1) +( 2n 1),3.2 数的定点表示与浮点表示,二、浮点表示 1. 浮点表示的数据格式,3.2 数的定点表示与浮点表示,2. 浮点数的规格化 目的在于: 为了提高运算精度,应尽可能占满尾数的位数,以保留更多的有效数字。 为了保证浮点数表示的唯一性。规格化数表示形式: 尾数原码表示: S原 =Sf.S1S2Sn,其中S1=1 尾数补码表示: S补 =Sf.S1S2Sn,其中Sf与S1相反,3.2 数的定点表示与浮

11、点表示,三、浮点数阶码的移码表示法 移码具有以下特点: (1)在移码中,最高位为“0”表示负数,最高位为“1”表示 正数,这与原码、补码以及反码的符号位取值正好相反。 (2)移码全为0时,它所对应的真值最小;全为1时,它所对应的真值最大。因此,移码的大小直观地反映了真值的大小,这将有助于两个浮点数进行阶码的大小比较。 (3)真值0在移码中的表示形式也是惟一的,即。 (4)移码把真值映射到一个正数域,所以可将移码视为无符号数,直接按无符号数规则比较大小。 (5)同一数值的移码和补码除最高位相反外,其他各位相同。,(1) 移码定义,x 为真值,n 为 整数的位数,移码在数轴上的表示,如,x = 1

12、0100,x移 = 25 + 10100,用 逗号 将符号位 和数值位隔开,x = 10100,x移 = 25 10100,= 1,10100,= 0,01100,(2) 移码和补码的比较,设 x = +1100100,x移 = 27 + 1100100,x补 = 0,1100100,设 x = 1100100,x移 = 27 1100100,x补 = 1,0011100,补码与移码只差一个符号位,= 1,1100100,= 0,0011100,1,0,0,1,(3) 真值、补码和移码的对照表,- 1 0 0 0 0 0, 0 0 0 0 0,+ 1 1 1 1 1,0 0 0 0 0 0,1

13、 1 1 1 1 1,0 0 0 0 0 0,1 0 0 0 0 0,当 x = 0 时,+0移 = 25 + 0, 0移 = 25 0, +0移 = 0移,当 n = 5 时,最小的真值为 25, 100000移,可见,最小真值的移码为全 0,(4) 移码的特点,用移码表示浮点数的阶码,能方便地判断浮点数的阶码大小,= 1,00000,= 1,00000,= 100000,= 000000,= 25100000,3.2 数的定点表示与浮点表示,三、浮点数阶码的移码表示法浮点数的阶码常采用移码表示最主要的原因有: 便于比较浮点数的大小。阶码大的,其对应的真值就大,阶码小的,对应的真值就小。 简

14、化机器中的判零电路。当阶码全为0,尾数也全为0时,表示机器零。,3.2 数的定点表示与浮点表示,四、定点数与浮点数的比较在字长相同的条件下,浮点表示的数据范围大,精度高。 浮点运算算法复杂,所需设备量大,运算速度慢。,3.3 文字数据的表示,一、字符与字符串的表示 1. ASCII码,b6b5b4,b3b2b1b0,3.3 文字数据的表示,2. 字符串数据,3.3 文字数据的表示,二、汉字的表示 汉字的输入编码 数字编码 拼音码 字形编码,3.3 文字数据的表示,2. 汉字内码 汉字内码是用于汉字信息存储、交换、检索等操作的机内代码,一般采用两个字节表示。英文字符的机内代码是7位的ASCII码

15、,当用一个字节表示时,最高位为“0”。为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为“1”。例如汉字操作系统CCDOS中使用的汉字内码是一种最高位为“1”的两字节内码。 有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。,3.3 文字数据的表示,3. 汉字字模码字模码是用点阵表示的汉字字形代码,它是汉字的输出形式。,3.4 数据校验码,一、奇偶校验码 1. 奇偶校验概念 奇偶校验实现方法是:由若干位有效信息(如个字节),再加上一个二进制位(校验位)组成校验码。校验位的取值(0或1)将使整个校验码中“1”的个数为奇数或偶数,所以有两种可供选择的校验规律:

16、奇校验整个校验码(有效信息位和校验位)中“1”的个数为奇数。 偶校验整个校验码中“1”的个数为偶数。,3.4 数据校验码,2. 简单奇偶校验,3.4 数据校验码,3. 交叉奇偶校验,3.4 数据校验码,二、海明校验码 海明校验码中校验位的位数设有效信息位的位数为,校验位的位数为,则组成的海明校验码共长位。校验时,需进行组奇偶校验,将每组的奇偶校验结果组合,可以组成一个位的二进制数,共能够表示种状态。在这些状态中,必有一个状态表示所有奇偶校验都是正确的,用于判定所有信息均正确无误,剩下的种状态可以用来判定出错代码的位置。因为海明校验码共长位,所以校验位的位数与有效信息位的位数应满足关系:,3.4

17、 数据校验码,2. 海明校验码的编码方法 一个具有位有效信息的海明校验码可以按照下面的步骤进行编码: (1)将位有效信息和位校验位,构成位的海明校验码。设校验码各位编码的位号按从左向右(或从右向左)的顺序从1到排列,则规定校验位所在的位号分别为,有效信息位按原编码的排列次序安排在其他位号中。 以7位ASCII码的海明校验码为例,按ASCII码的有效信息位的排列为。根据表3-4,可知应选择校验位位数,这样构成的海明校验码共有7+4=11位。根据规定,4个校验位分别位于位号为的位置上,即位号为的位置上,相应地命名为,其中下标为校验位所在的位号,有效信息位依次排列在其余位上。编码排列位置为:,3.5

18、 小型案例实训,【案例1】海明校验码 【说明】有一个(7,4)码,写出代码0011的海明校验码。 【分析】根据海明校验码的编码方法和步骤,可以求解本例。 【解答】 确定海明校验位的位数,因为是(7,4)码,所以N=7,K=4,校验位的位数为3。 确定校验位的位置,位号(17)为2的权值的那些位,即20、21、22的位置作为校验位,即:7 6 5 4 3 2 1 D3 D2 D1 P3 D0 P2 P1 分组, 校验位的形成 P1=D3D1D0=011=0 P2=D3D2D0=001=1 P3=D3D2D1=001=1为了能检测两个错误,增加一位校验P4,放在最高位。 P4=D3D2D1D0P1

19、P2P3 =0011011=0 所以,信息码0011的海明校验码为:00011110。,3.6 本章小结,1.一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有纯小数和纯整数两种表示方法。 2.按IEEE754标准,一个浮点数由符号位S、阶码E、尾数M三个域组成。其中阶码E的值等于指数的真值e加上一个固定偏移值。 3.数的真值变成机器码时有4种表示方法:原码表示法、反码表示法、补码表示法、移码表示法。其中移码主要用于表示浮点数的阶码E,以利于比较两个指数的大小和对阶操作。 4.字符信息属于符号数据,是处理非数值领域的问题。国际上采用的字符系统是7位的ASCII码。,3.7 学习加

20、油站,3.7.1 答疑解惑 【问题1】浮点数的阶码为什么通常采用移码? 答:因为移码便于进行比较,也能适合于实现加减法操作。 【问题2】在检错码中,奇偶校验法能否定位发生错误的信息位?是否具有纠错功能? 答:奇偶校验法不能定位发生错误的信息位,奇偶校验法没有纠错能力。 【问题3】简述CRC码的纠错原理。 答:CRC码是一种纠错能力较强的编码。在进行校验时,将CRC码多项式与生成多项式G(X)相除,若余数为0,则表明数据正确;当余数不为0时,说明数据有错。只要选择适当的生成多项式G(X),余数与CRC码出错位位置的对应关系是一定的,由此可以用余数作为判断出错位置的依据而纠正错码。,【问题4】一个

21、纠错码的全部码字为0000000000,0000011111,1111100000, 1111111111,它的海明距离为多少?可纠正几个错误?如果出现了码字0100011110,应纠正为什么? 答:码距是任意两个合法码之间至少有几个二进制位不相同,所以它们的码距为5。可纠正(5-1)个错误,即4个错误。错误码字0100011110,应纠正为0000011111。 【问题5】汉字的区位码、国标码和机内码有什么区别?已知汉字“春”的国标为343AH,试分别写出它的区位码和机内码。 答:GB2312的代码称之为国标码,国标码用十六进制数表示。汉字的区位码是用十进制数表示GB2312代码的区号和位号,与国标码没有本质的区别,仅是表示的数制有所不同而已。 机内码是系统内部标识汉字的编码。 国标码(十六进制)= 区位码(十六进制)+2020H 机内码(十六进制)= 国标码(十六进制)+8080H 因为汉字“春”的国标为343AH,所以: 区位码(十六进制)= 国标码(十六进制)-2020H =343AH-2020H=141AH 转为十进制区码为20,位码为26。 机内码(十六进制)= 国标码(十六进制)+8080H =343AH+8080H=B4BAH,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报