计算机组成原理_第2章_数据的机器层次表示(终)2012-228(1)_第1页
计算机组成原理_第2章_数据的机器层次表示(终)2012-228(1)_第2页
计算机组成原理_第2章_数据的机器层次表示(终)2012-228(1)_第3页
计算机组成原理_第2章_数据的机器层次表示(终)2012-228(1)_第4页
计算机组成原理_第2章_数据的机器层次表示(终)2012-228(1)_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2 2章章 数据的机器层次表示数据的机器层次表示1中国计算机学会中国计算机学会“21“21世纪大学本科计算机专业系列教材世纪大学本科计算机专业系列教材”第第2 2章章 数据的机器层次表示数据的机器层次表示2第第2 2章章 数据的机器层次表示数据的机器层次表示3本章学习内容本章学习内容 2.1 数值数据的表示数值数据的表示 2.2 机器数的定点表示和浮点表示机器数的定点表示和浮点表示 2.3 非数值数据的表示非数值数据的表示 2.4 十进制数和数串的表示十进制数和数串的表示 2.5 现代微型计算机中的数据表示举例现代微型计算机中的数据表示举例 2.6 数据校验码数据校验码第第2 2章章 数据

2、的机器层次表示数据的机器层次表示4本章学习要求本章学习要求 了解:了解:无符号数与带符号数,真值和机器数等无符号数与带符号数,真值和机器数等概念概念 掌握:原码、补码、反码表示法以及三种码制掌握:原码、补码、反码表示法以及三种码制与真值之间的转换方法与真值之间的转换方法 掌握:定点数和浮点数的表示范围掌握:定点数和浮点数的表示范围 理解:浮点数阶码的移码理解:浮点数阶码的移码 了解了解:IEEE754浮点数标准浮点数标准 掌握:常见的字符编码方法(掌握:常见的字符编码方法(ASCII码)、汉码)、汉字国标码、区位码、机内码字国标码、区位码、机内码 掌握:掌握:8421码、码、2421码和余码和

3、余3码码 掌握:奇偶校验位及其形成方法掌握:奇偶校验位及其形成方法 了解:海明校验码和循环冗余校验码了解:海明校验码和循环冗余校验码 第第2 2章章 数据的机器层次表示数据的机器层次表示5 无符号整数 有符号整数 高级语言程序员角度 图、树、链表等结构化数据描述 文字、图、表、声音、视频等各种媒体信息 输出设备 用户角度 输入设备 低级语言程序员和系统设计者角度 二进制编码表示的各种数据 指令系统能识别的基本类型数据 数值型数据 非数值型数据 整数(定点数) 实数(浮点数) 二进制数 二进制编码的十进制数 逻辑数据 西文字符和汉字 BACK离散化离散化编编 码码用二进制编码的原因:用二进制编码

4、的原因:1:制造二个稳定态的物理器:制造二个稳定态的物理器件容易件容易2:二进制编码、计数、运算:二进制编码、计数、运算规则简单;规则简单;3:正好与逻辑命题对应,便:正好与逻辑命题对应,便于逻辑运算,并可方便地用于逻辑运算,并可方便地用逻辑电路实现算术运算。逻辑电路实现算术运算。可比较大小可比较大小无大小之分无大小之分不表示数量多少不表示数量多少第第2 2章章 数据的机器层次表示数据的机器层次表示6 机器级数据分两大类:机器级数据分两大类:数值数据数值数据:无符号整数、带符号整数、浮点数(实数)、十进:无符号整数、带符号整数、浮点数(实数)、十进制数制数非数值数据非数值数据:逻辑数(包括位串

5、)、西文字符和汉字:逻辑数(包括位串)、西文字符和汉字 计算机内部所有信息都用二进制(计算机内部所有信息都用二进制(即:即:0 0和和1 1)进行编码)进行编码 用二进制编码的原因:用二进制编码的原因:制造二个稳定态的物理器件容易;制造二个稳定态的物理器件容易;二进制编码、计数、运算规则简单;二进制编码、计数、运算规则简单;正好与逻辑命题对应,便于逻辑运算,并可方便地用逻辑电路正好与逻辑命题对应,便于逻辑运算,并可方便地用逻辑电路实现算术运算。实现算术运算。 真值和机器数真值和机器数机器数机器数:用:用0 0和和1 1编码的计算机内部的编码的计算机内部的0/10/1序列序列即符号也数字化即符号

6、也数字化了,常用的机器数形式有:原码、补码、反码;了,常用的机器数形式有:原码、补码、反码;真值真值:机器数真正的值,即:现实中带正负号的数,即:机器数真正的值,即:现实中带正负号的数,即:正负正负符号加绝对值表示的数值。符号加绝对值表示的数值。第第2 2章章 数据的机器层次表示数据的机器层次表示7为什么要进行运算方法的研究?为什么要进行运算方法的研究? 1 1、将一个实际数,用机器数(原码、补码、反码)、将一个实际数,用机器数(原码、补码、反码)等表示,产生机器本身特有的运算规律;等表示,产生机器本身特有的运算规律; 2 2、机器特定的运算方法、机器特定的运算方法-定点运算、浮点运算;定点运

7、算、浮点运算; 3 3、早起冯诺依曼型运算器只设加法器和寄存器;、早起冯诺依曼型运算器只设加法器和寄存器; 4 4、采用什么样的算法与运算器的结构密切相关,、采用什么样的算法与运算器的结构密切相关,2 2者设计是相互影响的。者设计是相互影响的。 综上,从而展开运算方法的研究。综上,从而展开运算方法的研究。第第2 2章章 数据的机器层次表示数据的机器层次表示8一个实际数机器内表示所面临的问题一个实际数机器内表示所面临的问题一个实际数(如一个实际数(如+-8.75+-8.75)通常有数符、数码和小)通常有数符、数码和小数点三部分组成。数点三部分组成。例如例如 时间正时间正 存取款存取款 有正有负有

8、正有负例如,机器数例如,机器数 01011001 01011001的值是多少?的值是多少? 答案是:不知道!答案是:不知道!第第2 2章章 数据的机器层次表示数据的机器层次表示92.12.1数值数据的表示数值数据的表示数值数据表示的三要素数值数据表示的三要素 编码规则编码规则 (符号如何数字化?)(符号如何数字化?) 进位计数制(逢几进位?)进位计数制(逢几进位?) 定、浮点表示(如何处理小数点的位置?)定、浮点表示(如何处理小数点的位置?) 即:要确定一个数值数据的值必须先确定这三个要素。即:要确定一个数值数据的值必须先确定这三个要素。定点数的编码定点数的编码(解决正负号问题)(解决正负号问

9、题) 原码、补码、反码、移码原码、补码、反码、移码 (反码很少用)(反码很少用)进位计数制进位计数制 十进制、二进制、十六进制、八进制数及其相互转换十进制、二进制、十六进制、八进制数及其相互转换定定/浮点表示(浮点表示(解决小数点问题)解决小数点问题) 定点整数、定点小数定点整数、定点小数 浮点数(可用一个定点小数和一个定点整数来表示)浮点数(可用一个定点小数和一个定点整数来表示)第第2 2章章 数据的机器层次表示数据的机器层次表示102.1 数值数据的表示数值数据的表示 数据有数据有无符号数无符号数和和带符号数带符号数之分。之分。 带符号数带符号数根据其编码的不同又有根据其编码的不同又有 原

10、码、补码和反码原码、补码和反码3种形式。种形式。第第2 2章章 数据的机器层次表示数据的机器层次表示112.1.1 2.1.1 计算机中的数值数据计算机中的数值数据 二进制数:后缀二进制数:后缀B 八进制数:后缀八进制数:后缀Q 十进制数:后缀十进制数:后缀D或省略后缀或省略后缀 十六进制数:后缀十六进制数:后缀H第第2 2章章 数据的机器层次表示数据的机器层次表示122.1.2 2.1.2 无符号数和带符号数无符号数和带符号数 ,就是整个机器字长的全部二,就是整个机器字长的全部二进制位均表示数值位(没有符号位),相进制位均表示数值位(没有符号位),相当于数的当于数的。例如:例如: N1=01

11、001 表示无符号数表示无符号数9 N2=11001 表示无符号数表示无符号数25 机器字长为机器字长为n+1位的无符号数的表示位的无符号数的表示范围是范围是0(2n+1-1),此时二进制的最高位此时二进制的最高位也是数值位,其权值等于也是数值位,其权值等于2n。若字长为若字长为8位,则数的表示范围为位,则数的表示范围为0255。 第第2 2章章 数据的机器层次表示数据的机器层次表示132.1.2 2.1.2 无符号数和带符号数(续)无符号数和带符号数(续) 用用“+”、“-”号加绝对值来表示数值号加绝对值来表示数值的大小,用这种形式表示的数值在计算的大小,用这种形式表示的数值在计算机技术中称

12、为机技术中称为“真值真值”。 约定二进制数的最高位为符号位约定二进制数的最高位为符号位,“0”表示正号,表示正号,“1”表示负号。表示负号。这种在计算这种在计算机中使用的表示数的形式称为机中使用的表示数的形式称为机器数机器数。第第2 2章章 数据的机器层次表示数据的机器层次表示142.1.2 2.1.2 无符号数和带符号数(续)无符号数和带符号数(续) 常见的常见的机器数有原码、反码、补码机器数有原码、反码、补码等等3种不同的表示形式。种不同的表示形式。 带符号数的最高位被用来表示符号带符号数的最高位被用来表示符号位,而不再表示数值位。位,而不再表示数值位。 N1=01001 表示表示+9。

13、N2=11001 表示表示9。第第2 2章章 数据的机器层次表示数据的机器层次表示152.1.3 2.1.3 原码表示法原码表示法 原码原码表示法是一种最简单的机器数表示法是一种最简单的机器数表示法,用最高位表示符号位,符号位表示法,用最高位表示符号位,符号位为为“0”表示该数为正,符号位为表示该数为正,符号位为“1”表示该数为负,表示该数为负,数值部分与真值相同。数值部分与真值相同。符号位符号位+二进制的绝对值表示二进制的绝对值表示 最高位最高位0/1有效值有效值部分部分计算机中常将数规范化为:计算机中常将数规范化为:纯小数(定点小数)纯小数(定点小数)纯整数(定点整数)纯整数(定点整数)第

14、第2 2章章 数据的机器层次表示数据的机器层次表示162.1.3 2.1.3 原码表示法(续)原码表示法(续) 1. 设二进制设二进制纯小数(定点小数)纯小数(定点小数)的原码形的原码形式为:式为:Xs.X1X2Xn,字长字长n+1位,其中位,其中Xs表示表示符号位符号位。 1X0 即即X为正时,为正时, X原原 =X; 0 X-1 即即X为负时为负时X原原 =1-X=1+ X ;即符号位为即符号位为1,加上小数部分的绝对值,加上小数部分的绝对值例例1: X1=0.0110, X1原原=0.0110 X2=-0.0110, X2原原=1-(-0.0110)=1+ 0.0110 =1.0110第

15、第2 2章章 数据的机器层次表示数据的机器层次表示172.1.3 2.1.3 原码表示法(续)原码表示法(续)2. 设二进制设二进制纯整数(定点整数)纯整数(定点整数)的原码形式为的原码形式为XsX1X2Xn,其中其中Xs表示符号位。表示符号位。 例例2: X1=1101, X1原原=01101 X2=-1101, X2原原=111012n x 即即X为正时为正时X原原= X ;0 2n, 即即X为负时,为负时, X原原= 2n X= 2n + X 其中其中2n 为符号位的权值,加为符号位的权值,加2n 相当于令符号位相当于令符号位为为1 。 第第2 2章章 数据的机器层次表示数据的机器层次表

16、示18 Sign and Magnitude (原码的表示)(原码的表示)BinaryDecimal0123456700000001001000110100010101100111u 容易理解容易理解, 但是:但是: 0 的表示不唯一,不利于程序员编程的表示不唯一,不利于程序员编程 加、减运算方式不统一加、减运算方式不统一 需额外对符号位进行处理,不利于硬件设计需额外对符号位进行处理,不利于硬件设计 特别当特别当 ab时,实现时,实现 a- b比较困难比较困难从从 50年代开始,整数都采用补码来表示年代开始,整数都采用补码来表示但浮点数的尾数用原码定点小数表示但浮点数的尾数用原码定点小数表示B

17、inaryDecimal-0-1-2-3-4-5-6-710001001101010111100110111101111第第2 2章章 数据的机器层次表示数据的机器层次表示19分析分析2个定义式得到结论:个定义式得到结论: 真值真值0在原码表示中有两种不同的表示在原码表示中有两种不同的表示形式:形式: +0原原=00000, -0原原=10000。但。但真值含义相同;真值含义相同; 符号位不是数值的一部分,所以符号符号位不是数值的一部分,所以符号位在运算过程中要单独处理,不能当作位在运算过程中要单独处理,不能当作数值的一部分直接参与运算;数值的一部分直接参与运算; 对于小数,表示范围在对于小数

18、,表示范围在X X x 即即X为正时为正时= X ;0 x -1, 即即X为负时,为负时, =2+X=2- X (mod 2) 例例5:X1=0.0110, X1补补=0.0110 X2=-0.0110, X2补补=2+(-0.0110)=10-0.0110 =1.1010第第2 2章章 数据的机器层次表示数据的机器层次表示23 补码的符号位表示方法与原码相同,补码的符号位表示方法与原码相同,其数值部分的表示与数的正负有关:其数值部分的表示与数的正负有关: 对于正数,数值部分与真值形式相同;对于正数,数值部分与真值形式相同; 对于负数,将真值的数值部分按位取反,对于负数,将真值的数值部分按位取

19、反,末位再加末位再加1。 2.1.4 2.1.4 补码表示法补码表示法第第2 2章章 数据的机器层次表示数据的机器层次表示242.1.4 补码表示法补码表示法 2. 若真值为若真值为纯整数纯整数,它的补码形式为,它的补码形式为XsX1X2Xn,其其中中Xs表示符号位。表示符号位。例例6: X1=1101, X1补补=01101 X2=-1101, X2补补=10011 在补码表示中,真值在补码表示中,真值0的表示形式是唯一的:的表示形式是唯一的: +0补补=-0补补=00000 第第2 2章章 数据的机器层次表示数据的机器层次表示25补码补码第第2 2章章 数据的机器层次表示数据的机器层次表示

20、26 当当X为正数时,为正数时,X补补=X原原=X 当当X为负数时,由为负数时,由X原原转换为转换为X补补的方法:的方法: X原原除掉符号位外的各位取反加除掉符号位外的各位取反加“1”。 自低位向高位,尾数的第一个自低位向高位,尾数的第一个“1”及及其右部的其右部的“0”保持不变,左部的各位取保持不变,左部的各位取反,符号位保持不变。反,符号位保持不变。 例例7:X原原 =1.1110011000 X补补 =1.00011010003.由真值、原码转换为补码由真值、原码转换为补码不变不变不变不变变反变反第第2 2章章 数据的机器层次表示数据的机器层次表示27 第一种方法,计算机中利用寄存器的反

21、相输出在加法器中加1,从而并行的实现求补; 第二种,适合手算和低速串行求补。第第2 2章章 数据的机器层次表示数据的机器层次表示282.1.5 2.1.5 反码表示法反码表示法 对于对于正数正数,数值部分与,数值部分与真值真值形式相同;形式相同; 对于对于负数负数,将真值的,将真值的数值部分按位取数值部分按位取反。反。 若真值为纯小数,它的反码形式为若真值为纯小数,它的反码形式为Xs.X1X2Xn,其中其中Xs表示符号位。表示符号位。 例例9:X1=0.0110, X1反反=0.0110 X2=-0.0110, X2反反=1.1001第第2 2章章 数据的机器层次表示数据的机器层次表示292.

22、1.5 2.1.5 反码表示法(续)反码表示法(续) 若真值为纯整数,它的反码形式为:若真值为纯整数,它的反码形式为:XsX1X2Xn,其中其中Xs表示符号位。表示符号位。 例例10:X1=1101, X1补补=01101 X2=-1101, X2补补=10010 在反码表示中,真值在反码表示中,真值0也有两种不同的表也有两种不同的表示形式:示形式: +0反反=00000 -0反反=11111第第2 2章章 数据的机器层次表示数据的机器层次表示30 1.比较比较 对于对于正数它们都等于真值本身正数它们都等于真值本身,而对于负数各,而对于负数各有不同的表示。有不同的表示。 最高位最高位都表示符号

23、位,都表示符号位,补码和反码的符号位可补码和反码的符号位可作为数值位的一部分看待作为数值位的一部分看待,和数值位一起参加和数值位一起参加运算;运算;但原码的符号位不允许和数值位同等看但原码的符号位不允许和数值位同等看待,必须分开进行处理。待,必须分开进行处理。 对于真值对于真值0,原码和反码原码和反码各有两种不同的表示各有两种不同的表示形式,而形式,而补码只有唯一补码只有唯一的一种表示形式。的一种表示形式。 原码、反码表示的正、负数范围相对零来说是原码、反码表示的正、负数范围相对零来说是对称的;对称的;但补码负数表示范围较正数表示范围但补码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝

24、对值最大的负宽,能多表示一个最负的数(绝对值最大的负数),其值等于数),其值等于-2n(纯整数)或纯整数)或-1(纯小数)。(纯小数)。2.1.6 2.1.6 三种码制的比较与转换三种码制的比较与转换第第2 2章章 数据的机器层次表示数据的机器层次表示31真值与真值与3种机器数间的对照种机器数间的对照真值真值 X X 真值真值 X X 十进制十进制 二进制二进制 XX 原原XX 反反XX 补补 十进制十进制 二进制二进制 XX 原原 XX 反反 XX 补补 +0+0 +1+1 +2+2 +3+3 +4+4 +5+5 +6+6 +7+7 +8+8 +000+000 +001+001 +010+0

25、10 +011+011 +100+100 +101+101 +110+110 +111+111 - - 00000000 00010001 00100010 00110011 01000100 01010101 01100110 01110111 - - - -0 0 - -1 1 - -2 2 - -3 3 - -4 4 - -5 5 - -6 6 - -7 7 - -8 8 - -000000 - -001001 - -010010 - -011011 - -100100 - -101101 - -110110 - -111111 - -10001000 10001000 10011001

26、 10101010 10111011 11001100 11011101 11101110 11111111 - - 11111111 1111110 0 11110101 1101100 0 1 1011011 1011010 0 10100101 1001000 0 - - 00000000 1111111 1 11111010 1101101 1 1 11 10000 1011011 1 10101 10 0 1001001 1 10001000 第第2 2章章 数据的机器层次表示数据的机器层次表示322.转换转换 如果已知机器的字长,则机器数的位数应如果已知机器的字长,则机器数的位数应

27、补够相应的位。例如,设机器字长为补够相应的位。例如,设机器字长为8位,则:位,则: X1=1011 X2=-1011 整数前面补整数前面补0 X1原原=00001011 X2原原=10001011 X1补补=00001011 X2补补=11110101 X1反反=00001011 X2反反=11110100 X3=0.1011 X4=-0.1011 小数后面补小数后面补0 X3原原=0.1011000 X4原原=1.1011000 X3补补=0.1011000 X4补补=1.0101000 X3反反=0.1011000 X4反反=1.0100111第第2 2章章 数据的机器层次表示数据的机器层

28、次表示332.2 机器数的定点表示与浮点表示机器数的定点表示与浮点表示 计算机在进行算术运算时,需要指计算机在进行算术运算时,需要指出小数点的位置。根据小数点的位置是出小数点的位置。根据小数点的位置是否固定,在计算机中有两种数据格式:否固定,在计算机中有两种数据格式:定点表示和浮点表示。定点表示和浮点表示。第第2 2章章 数据的机器层次表示数据的机器层次表示342.2.1 2.2.1 定点表示法定点表示法 在定点表示法中约定:所有数据的小数点位置在定点表示法中约定:所有数据的小数点位置固定不变固定不变。1.定点小数定点小数 小数点的位置固定在最高有效数位之前,小数点的位置固定在最高有效数位之前

29、,符号位之后符号位之后,记作,记作Xs.X1X2Xn,这个数是一这个数是一个个纯小数纯小数。 定点小数的小数点位置是隐含约定的,小数点定点小数的小数点位置是隐含约定的,小数点并不需要真正地占据一个二进制位。并不需要真正地占据一个二进制位。第第2 2章章 数据的机器层次表示数据的机器层次表示35定点小数表示范围定点小数表示范围图图2-2 定点小数格式定点小数格式 当当Xs=0,X1Xn=1时,时,X为最大正数。为最大正数。 即为即为 0.11.1, X最大正数最大正数 =1-2-n 当当Xn=1,XsXn-1=0时,时,X为最小正数。为最小正数。 即为即为0.001, X最小正数最小正数 =2-

30、nn位数值位数符小数点位置(隐含)XsX1Xn-1Xn第第2 2章章 数据的机器层次表示数据的机器层次表示36 当当Xs=1,表示表示X为负数,在计算机中带符号数可用补码为负数,在计算机中带符号数可用补码表示,也可用原码表示。原码和补码的表示范围有一些表示,也可用原码表示。原码和补码的表示范围有一些差别。差别。 若机器数为若机器数为原码原码表示,当表示,当XsXn均等于均等于1时,时,X为绝对值最大的负数。为绝对值最大的负数。 即为即为X=1.111,即为,即为- 0.11.1 X绝对值最大负数绝对值最大负数=-(1-2-n) n位数值位数符小数点位置(隐含)XsX1Xn-1Xn第第2 2章章

31、 数据的机器层次表示数据的机器层次表示37 若机器数为补码表示,当若机器数为补码表示,当Xs=1,X1Xn均等于均等于0时,时,X为绝对值最大的负数。为绝对值最大的负数。 即为即为1.000 X绝对值最大负数绝对值最大负数=-1n位数值位数符小数点位置(隐含)XsX1Xn-1Xn第第2 2章章 数据的机器层次表示数据的机器层次表示38 若机器字长有若机器字长有n+1位,则有:位,则有: 原码定点小数表示范围:原码定点小数表示范围: -(1-2-n)(1-2-n) 补码定点小数表示范围:补码定点小数表示范围: -1(1-2-n) 若机器字长有若机器字长有8位,则有:位,则有: 原码定点小数表示范

32、围:原码定点小数表示范围: - 补码定点小数表示范围:补码定点小数表示范围: -1定点小数表示范围(续)定点小数表示范围(续)128127128127128127第第2 2章章 数据的机器层次表示数据的机器层次表示392.定点整数定点整数 定点整数即纯整数,定点整数即纯整数,小数点位置隐小数点位置隐含固定在最低有效数位之后含固定在最低有效数位之后,记作,记作XsX1X2Xn。图2-3 定点整数格式XsX1Xn-1n位数值位数符小数点位置(隐含)Xn第第2 2章章 数据的机器层次表示数据的机器层次表示40若机器字长有若机器字长有n+1位,则有:位,则有:原码定点整数的表示范围:原码定点整数的表示

33、范围: -(2n-1)(2n-1)补码定点整数的表示范围:补码定点整数的表示范围: -2n (2n-1)若机器字长有若机器字长有8位,则有:位,则有:原码定点整数表示范围:原码定点整数表示范围: -127127补码定点整数表示范围:补码定点整数表示范围: -128127定点整数表示范围定点整数表示范围第第2 2章章 数据的机器层次表示数据的机器层次表示41 小数点的位置根据需要而浮动,这小数点的位置根据需要而浮动,这就是浮点数就是浮点数。例如:。例如: N=MrE 式中:式中:r为浮点数阶码的底,与尾数为浮点数阶码的底,与尾数的基数相同,通常的基数相同,通常r=2。E和和M都是带符号都是带符号

34、数,数,E叫做阶码叫做阶码,M叫做尾数叫做尾数。 尾数为纯小数尾数为纯小数,常用原码或补码表示常用原码或补码表示; 阶码为纯整数,常用移码或补码表示。阶码为纯整数,常用移码或补码表示。2.2.2 2.2.2 浮点表示法浮点表示法 第第2 2章章 数据的机器层次表示数据的机器层次表示42图图2-5 浮点数的一般格式浮点数的一般格式 浮点数的底浮点数的底是隐含的,在整个机器数中不出是隐含的,在整个机器数中不出现。现。 阶码的符号阶码的符号位为位为es,阶码的大小反映了在数阶码的大小反映了在数N中中小数点的实际位置小数点的实际位置; 尾数的符号位尾数的符号位为为ms,它是整个浮点数的符号它是整个浮点

35、数的符号位,表示了该位,表示了该浮点数的正负浮点数的正负。浮点数的一般格式浮点数的一般格式尾数部分M阶码部分Eesemsmk位n位1位1位第第2 2章章 数据的机器层次表示数据的机器层次表示431.浮点数的表示范围浮点数的表示范围 当当es=0,ms=0,阶码和尾数的数值位各位阶码和尾数的数值位各位全为全为1(即(即阶码和尾数都为最大正数阶码和尾数都为最大正数)时,)时,该浮点数为最大正数:该浮点数为最大正数: X最大正数最大正数=(1-2-n) 当当es=1,ms=0,尾数的最低位尾数的最低位mn=1,其其余各位为余各位为0(即(即阶码为绝对值最大的负数,阶码为绝对值最大的负数,尾数为最小正

36、数尾数为最小正数)时,该浮点数为最小)时,该浮点数为最小正数:正数: X最小正数最小正数=2-n 122kk22第第2 2章章 数据的机器层次表示数据的机器层次表示441.浮点数的表示范围(续)浮点数的表示范围(续) 当当es=0,阶码的数值位为全阶码的数值位为全1;ms=1,尾尾数的数值位为全数的数值位为全0(即阶码为最大正数,即阶码为最大正数,尾数为绝对值最大的负数尾数为绝对值最大的负数)时,该浮点)时,该浮点数为绝对值最大负数:数为绝对值最大负数: X绝对值最大负数绝对值最大负数= -1 122 k第第2 2章章 数据的机器层次表示数据的机器层次表示45 为了提高运算的精度,需要充分地为

37、了提高运算的精度,需要充分地利用尾数的有效数位,通常采取浮点数规利用尾数的有效数位,通常采取浮点数规格化形式,即规定格化形式,即规定尾数的最高数位必须是尾数的最高数位必须是一个有效值一个有效值。 1/2 |M| 1 尾数用原码表示时,规格化浮点数的尾数尾数用原码表示时,规格化浮点数的尾数的最高位总为的最高位总为1.2.规格化浮点数规格化浮点数第第2 2章章 数据的机器层次表示数据的机器层次表示46分析分析如果正数,如果正数,0.1xxx,原码补码一样,则,原码补码一样,则1/2 X 1如果负数:如果负数:原码为原码为1.1xxx , -1 X -1/2 补码为补码为1.0 xxx, -1X -

38、1/2 注意:不是机器数最高位为注意:不是机器数最高位为1,而是指真值的最高数位必须为,而是指真值的最高数位必须为11.000 为为-11.0111即为原码即为原码1.101 0 THEN READ (C)。 向量存放法在存储器中占用一片连续向量存放法在存储器中占用一片连续的空间,每个字节存放一个字符代码的空间,每个字节存放一个字符代码,字,字符串的所有元素(字符)在物理上是邻接符串的所有元素(字符)在物理上是邻接的。的。 在字长为在字长为32位的存储器,每一个主存单位的存储器,每一个主存单元可存放元可存放4个字符,整个字符串需个字符,整个字符串需5个主存个主存单元。在每个字节中实际存放的是相

39、应字单元。在每个字节中实际存放的是相应字符的符的ASCII码。码。第第2 2章章 数据的机器层次表示数据的机器层次表示68IFX0THENREA(C)D字符串的向量存放方案字符串的向量存放方案5449462020202030454541444852433E2928584E图图2-7 字符串的向量存放方案字符串的向量存放方案第第2 2章章 数据的机器层次表示数据的机器层次表示691.汉字国标码汉字国标码 汉字国标码亦可称为汉字交换码,汉字国标码亦可称为汉字交换码,主要用于汉字信息处理系统之间或者通信主要用于汉字信息处理系统之间或者通信系统之间交换信息使用,简称系统之间交换信息使用,简称GB码。该

40、码。该标准共收集常用汉字标准共收集常用汉字6 763个,另外还有个,另外还有各种图形符号各种图形符号682个,共计个,共计7 445个。个。 GB码规定码规定每个汉字、图形符号都用每个汉字、图形符号都用两个字节两个字节表示,表示,每个字节只使用低七位编每个字节只使用低七位编码码,因此最多能表示出,因此最多能表示出128128=16 384个汉字。个汉字。 2.3.2 2.3.2 汉字的表示汉字的表示第第2 2章章 数据的机器层次表示数据的机器层次表示70 区位码将汉字编码码中的区位码将汉字编码码中的6 763个汉个汉字分为字分为94个区,每个区中包含个区,每个区中包含94个汉字个汉字(位),(

41、位),区和位组成一个二维数组,每个区和位组成一个二维数组,每个汉字在数组中对应一个唯一的区位码。汉字在数组中对应一个唯一的区位码。汉汉字的区位码定长字的区位码定长4位,前位,前2位表示区号,后位表示区号,后2位表示位号,区号和位号用十进制数表位表示位号,区号和位号用十进制数表示示,区号从,区号从01到到94,位号也从,位号也从01到到94。例。例如,如,“中中”字在字在54区的区的48位上,其区位码位上,其区位码为为“54-48”,“国国”字在字在25区的区的90位上,位上,其区位码为其区位码为“25-90”。 2.汉字区位码汉字区位码第第2 2章章 数据的机器层次表示数据的机器层次表示71

42、需要注意的是:汉字区位码并不等于汉字需要注意的是:汉字区位码并不等于汉字国标码,它们两者之间的关系可用以下公式表国标码,它们两者之间的关系可用以下公式表示:示: 国标码区位码(十六进制)国标码区位码(十六进制)2020H 例例15:已知汉字:已知汉字“春春”的区位码为的区位码为“20-26”,计算它的国标码。计算它的国标码。 区位码:第区位码:第1字节字节 第第2字节字节 20 26 十进制十进制 14H 1AH 十六进制十六进制 +20H +20H 国标码:国标码: 34H 3AH2.汉字区位码(续)汉字区位码(续)第第2 2章章 数据的机器层次表示数据的机器层次表示72 汉字在计算机内部其

43、内码是唯一的。因为汉字在计算机内部其内码是唯一的。因为汉字处理系统要保证中西文的兼容,当系统中汉字处理系统要保证中西文的兼容,当系统中同时存在同时存在ASCII码和汉字国标码时,将会产生码和汉字国标码时,将会产生二义性二义性。 例如:有两个字节的内容为例如:有两个字节的内容为30H和和21H,它既可它既可表示汉字表示汉字“啊啊”的国标码,又可表示西文的国标码,又可表示西文“0”和和“!”的的ASCII码。为此,汉字机内码应对国码。为此,汉字机内码应对国标码加以适当处理和变换。标码加以适当处理和变换。 GB码的机内码为二字节长的代码,它是在码的机内码为二字节长的代码,它是在相应相应GB码的每个字

44、节最高位上加码的每个字节最高位上加“1”,即,即 汉字机内码汉字国标码汉字机内码汉字国标码8080H 例如,上述例如,上述“啊啊”字的国标码是字的国标码是3021H,其汉字机内码则是其汉字机内码则是B0A1H。 3.汉字机内码汉字机内码 第第2 2章章 数据的机器层次表示数据的机器层次表示73 Unicode的基本方法是用一个的基本方法是用一个16位的位的数来表示每个符号,这种符号集可表示数来表示每个符号,这种符号集可表示65536个不同的字符或符号。被称为基本个不同的字符或符号。被称为基本多语言平面(多语言平面(BMP)。)。这个空间已经非这个空间已经非常大了,但设计者考虑到将来某一天它可常

45、大了,但设计者考虑到将来某一天它可能也会不够用,所以采用了一种可使这种能也会不够用,所以采用了一种可使这种表示法使用得更远的方法。表示法使用得更远的方法。2.3.3 2.3.3 统一代码统一代码第第2 2章章 数据的机器层次表示数据的机器层次表示74 当用两字节来表示当用两字节来表示Unicode字符时,使字符时,使用的是用的是UCS-2编码,但尽管如此,也允许编码,但尽管如此,也允许在在UCS-2文本中插入一些文本中插入一些UCS-4字符。为字符。为此,在此,在BMP中,保留了两个大小为中,保留了两个大小为1024的块,这两个块中任何位置都不能用来表的块,这两个块中任何位置都不能用来表示任何

46、符号。示任何符号。UCS-4的两个的两个16位字每个表位字每个表示一个数,这个数是示一个数,这个数是UCS-2 BMP中中1024个数值中的一个。这两个数的组合可以表个数值中的一个。这两个数的组合可以表示多达示多达100多万个自定义的多万个自定义的UCS-4字符。字符。2.3.3 2.3.3 统一代码(续)统一代码(续)第第2 2章章 数据的机器层次表示数据的机器层次表示75PC机中表示符号的机中表示符号的3种方法种方法图图2-8 PC机中表示符号的机中表示符号的3种方法种方法00071531扩展ASCII字符的表示方法Unicode(UCS-2)的表示方法Unicode(UCS-4)的表示方

47、法第第2 2章章 数据的机器层次表示数据的机器层次表示762.4 十进制数和数串的表示十进制数和数串的表示 十进制是人们最常用的数据表示方法,十进制是人们最常用的数据表示方法,一些通用性较强的计算机上设有十进制数一些通用性较强的计算机上设有十进制数据的表示,可以直接对十进制数进行运算据的表示,可以直接对十进制数进行运算和处理。和处理。第第2 2章章 数据的机器层次表示数据的机器层次表示772.4.1 2.4.1 十进制数的编码十进制数的编码 用四位二进制数来表示一位十进制数,用四位二进制数来表示一位十进制数,称为称为二进制编码的十进制数,简称二进制编码的十进制数,简称BCD码码。 四位二进制数

48、可以组合出四位二进制数可以组合出16种代码,种代码,能表示能表示16种不同的状态,我们只需要使用种不同的状态,我们只需要使用其中的其中的10种状态,就可以表示十进制数的种状态,就可以表示十进制数的09十个数码,而其他的六种状态为冗余十个数码,而其他的六种状态为冗余状态。由于可以取任意的状态。由于可以取任意的10种代码来表示种代码来表示十个数码,所以就可能产生多种十个数码,所以就可能产生多种BCD编码。编码。BCD编码既具有二进制数的形式,又保持编码既具有二进制数的形式,又保持了十进制数的特点。了十进制数的特点。第第2 2章章 数据的机器层次表示数据的机器层次表示78几种常见的几种常见的BCD码

49、码十进制十进制84218421 码码24212421 码码余余 3 3 码码0 01 12 23 34 45 56 67 78 89 90000000000010001001000100011001101000100010101010110011001110111100010001001100100000000000100010010001000110011010001001011101111001100110111011110111011111111001100110100010001010101011001100111011110001000100110011010101010111011

50、11001100第第2 2章章 数据的机器层次表示数据的机器层次表示791.8421码码 8421码又称为码又称为NBCD码,其主要特点码,其主要特点是:是: 它是一种有权码,四位二进制代码它是一种有权码,四位二进制代码的位权从高到低分别为的位权从高到低分别为8、4、2、1。 简单直观。每个代码与它所代表的简单直观。每个代码与它所代表的十进制数之间符合二进制数和十进制数相十进制数之间符合二进制数和十进制数相互转换的规则。互转换的规则。 不允许出现不允许出现10101111。这。这6个代个代码在码在8421码中是非法码。码中是非法码。第第2 2章章 数据的机器层次表示数据的机器层次表示802.2

51、421码码 2421码的主要特点是:码的主要特点是: 它也是一种有权码,四位二进制它也是一种有权码,四位二进制代码的位权从高到低分别为代码的位权从高到低分别为2、4、2、1。 它又是一种对它又是一种对9的的自补码自补码。即某数。即某数的的2421码,只要自身按位取反,就能得码,只要自身按位取反,就能得到该数对到该数对9之补的之补的2421码。例如:码。例如: 3的的2421码是码是0011。3对对9之补是之补是6,而而6的的2421码是码是1100。 不允许出现不允许出现01011010。这。这6个代个代码在码在2421码中是非法码。码中是非法码。第第2 2章章 数据的机器层次表示数据的机器层

52、次表示813.余余3码码 余余3码的主要特点是:码的主要特点是: 这是一种无权码,但也可看作是这是一种无权码,但也可看作是一种特殊的有权码,即在一种特殊的有权码,即在8421码的基础码的基础上加上加+3(+0011)形成的,故称余)形成的,故称余3码。码。在这种编码中各位的在这种编码中各位的“1”不表示一个固不表示一个固定的十进制数值,因而不直观。定的十进制数值,因而不直观。 它也是一种对它也是一种对9的的自补码自补码。 不允许出现不允许出现00000010、11011111。这。这6个代码在余个代码在余3码中是非法码。码中是非法码。第第2 2章章 数据的机器层次表示数据的机器层次表示822.

53、4.2 2.4.2 十进制数串十进制数串1.非压缩的十进制数串非压缩的十进制数串 非压缩的十进制数串中一个字节存放一个非压缩的十进制数串中一个字节存放一个十进制数或符号的十进制数或符号的ASCII-7码。码。 非压缩的十进制数串又分成前分隔式数字非压缩的十进制数串又分成前分隔式数字串和后嵌入式数字串两种格式。在前分隔式数串和后嵌入式数字串两种格式。在前分隔式数字串中,符号位占用单独一个字节,放在数值字串中,符号位占用单独一个字节,放在数值位之前,正号对应的位之前,正号对应的ASCII码为码为2BH,负号对应负号对应的的ASCII码为码为2DH。在后嵌入式数字串中,符号在后嵌入式数字串中,符号位

54、不单独占用一个字节,而是嵌入到最低一位位不单独占用一个字节,而是嵌入到最低一位数字里边去。若数串为正,则最低一位数字数字里边去。若数串为正,则最低一位数字09的的ASCII码不变(码不变(30H39H););若数串为负,若数串为负,把负号变为把负号变为40H,并将其与最低数值位相加,此并将其与最低数值位相加,此时数字时数字09的的ASCII码变为码变为70H79H。 第第2 2章章 数据的机器层次表示数据的机器层次表示832.压缩的十进制数串压缩的十进制数串 压缩的十进制数串,一个字节可存放压缩的十进制数串,一个字节可存放两位两位BCD码表示的十进制数,既节省了存码表示的十进制数,既节省了存储

55、空间,又便于直接进行十进制算术运算。储空间,又便于直接进行十进制算术运算。 在主存中,一个压缩的十进制数串占在主存中,一个压缩的十进制数串占用连续的多个字节,每位数字仅占半个字用连续的多个字节,每位数字仅占半个字节,其值常用节,其值常用8421码表示。符号位也占半码表示。符号位也占半个字节,并存放在最低数值位之后,通常个字节,并存放在最低数值位之后,通常用用CH表示正号,表示正号,DH表示负号。在这种表表示负号。在这种表示中,规定数字的个数加符号位之和必须示中,规定数字的个数加符号位之和必须为偶数;当和为奇数时,应在最高数值位为偶数;当和为奇数时,应在最高数值位之前补之前补0H(即第一个字节的

56、高半字节为即第一个字节的高半字节为“0000”)。)。 第第2 2章章 数据的机器层次表示数据的机器层次表示842.5 现代微机系统中的数据表示举例现代微机系统中的数据表示举例 现代的微机系统大多采用现代的微机系统大多采用Intel系列的系列的微处理器,微处理器,近年来近年来,Intel的微处理器有了的微处理器有了极大的发展,形成了极大的发展,形成了IA-32结构。结构。 IA-32结构的基本数据类型是字节、字、结构的基本数据类型是字节、字、双字双字、四字和双四字。四字和双四字。 第第2 2章章 数据的机器层次表示数据的机器层次表示85070000字节字双字四字双四字低四字高四字低双字高双字低

57、字高字低字节高字节15316312763643132151678NNNNNN+1N+2N+4N+8IA-32结构的基本数据类型结构的基本数据类型图图2-9 IA-32结构的基本数据类型结构的基本数据类型第第2 2章章 数据的机器层次表示数据的机器层次表示861.无无符号整数符号整数 无符号整数是包含字节、字、双字无符号整数是包含字节、字、双字和四字的无符号的二进制数。无符号整和四字的无符号的二进制数。无符号整数的范围,对于字节,从数的范围,对于字节,从0255;对于;对于字,从字,从065535;对于双字,从;对于双字,从0232 -1;对于四字,从对于四字,从0264-1。 2.带符号整数带

58、符号整数 带符号整数是包含字节、字、双字带符号整数是包含字节、字、双字和四字的带符号的二进制定点整数。正和四字的带符号的二进制定点整数。正数的符号位为数的符号位为0,负数的符号位为,负数的符号位为1。对。对于字节,从于字节,从-128+127;对于字,从;对于字,从 -32768+32767;对于双字,从;对于双字,从-231+231-1;对于四字,从;对于四字,从-263+263-1。第第2 2章章 数据的机器层次表示数据的机器层次表示873.浮点数浮点数 与与IEEE 754标准所规定的格式直接对标准所规定的格式直接对应。应。4.指针数据指针数据 指针是主存单元的地址,指针是主存单元的地址

59、,IA-32 结构结构定义了两种类型的指针:近指针(定义了两种类型的指针:近指针(32位)位)和远指针(和远指针(48位)。位)。5.串数据串数据 包括位串、字节串、字串和双字串。包括位串、字节串、字串和双字串。一个串可以包含从一个字节到一个串可以包含从一个字节到4GB的内容。的内容。第第2 2章章 数据的机器层次表示数据的机器层次表示88 6.BCD数数 IA-32 结构结构中所指的中所指的BCD码实际上码实际上是指是指8421码。码。BCD数又分成未拼装的数又分成未拼装的BCD(UBCD)数和拼装的数和拼装的BCD数两种。数两种。UBCD数的一个字节仅包含一位十进制数的一个字节仅包含一位十

60、进制数,在数,在30位上;而经过拼装的位上;而经过拼装的BCD数,数,一个字节包含两位十进制数,其低位在一个字节包含两位十进制数,其低位在30位上,高位在位上,高位在74位上。位上。 第第2 2章章 数据的机器层次表示数据的机器层次表示892.6 数据校验码数据校验码 数据校验码数据校验码是指那些能够发现错误或能够是指那些能够发现错误或能够自动纠正错误的数据编码,又称之为自动纠正错误的数据编码,又称之为“检错纠检错纠错编码错编码”。 任何一种编码都由许多码字构成,任何一种编码都由许多码字构成,任意两个任意两个码字之间最少变化的二进制位数,码字之间最少变化的二进制位数,被称为数据被称为数据校验码

温馨提示

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

评论

0/150

提交评论