数据的机器层次表示_第1页
数据的机器层次表示_第2页
数据的机器层次表示_第3页
数据的机器层次表示_第4页
数据的机器层次表示_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2 2章章 数据的机器层次表示数据的机器层次表示数值数据的表示数值数据的表示2.1机器数的定点表示与浮点表示机器数的定点表示与浮点表示2.2非数值数据表示非数值数据表示2.3十进制数和数串的表示十进制数和数串的表示2.4现代微型计算机系统中的数据表示举例现代微型计算机系统中的数据表示举例2.5数据校验码数据校验码2.62.1 2.1 数值数据的表示数值数据的表示2.1.1 计算机中的数值数据计算机中的数值数据 2.1.2 无符号数和带符号数无符号数和带符号数 2.1.3 原码表示法原码表示法 2.1.4补码表示法补码表示法 2.1.5 反码表示法反码表示法 2.1.6 三种机器数的比较与转

2、换三种机器数的比较与转换 2.1.1 2.1.1 计算机中的数值数据计算机中的数值数据人们在日常生活中最常使用的是十进制数,这恐怕和人有十个指头是分不开的。人们在日常生活中最常使用的是十进制数,这恐怕和人有十个指头是分不开的。然而,在计算机中数据通常用二进制数来表示,任何数值数据都可以由一串然而,在计算机中数据通常用二进制数来表示,任何数值数据都可以由一串“0”或或“1”的数字表示。考虑到二进制数位数比较长,书写起来不方便,在计算机中的数字表示。考虑到二进制数位数比较长,书写起来不方便,在计算机中也使用八进制和十六进制来表示数值数据。也使用八进制和十六进制来表示数值数据。为了避免出现误会,在给

3、出一个数的同时就必须指明这个数的数制,例如:(为了避免出现误会,在给出一个数的同时就必须指明这个数的数制,例如:(1010)2、(、(1010)8、(、(1010)10、(、(1010)16所代表的数值就不同。除了用下标所代表的数值就不同。除了用下标来表示不同的数制以外,在计算机中还常用后缀字母来表示不同的数制。后缀来表示不同的数制以外,在计算机中还常用后缀字母来表示不同的数制。后缀B表示这个数是二进制数(表示这个数是二进制数(Binary);后缀);后缀Q表示这个数是八进制数(表示这个数是八进制数(Octal),本),本来八进制数的英文单词的第一个字母应当是来八进制数的英文单词的第一个字母应

4、当是O,因为,因为O与数字与数字0太容易混淆,所以太容易混淆,所以常使用字符常使用字符Q作为八进制数的后缀;后缀作为八进制数的后缀;后缀H表示这个数是十六进制数(表示这个数是十六进制数(Hexadecimal);而后缀);而后缀D表示这个数是十进制数(表示这个数是十进制数(Decimal)。十进制数在书写)。十进制数在书写时后缀时后缀D可以省略,其他进制在书写时后缀一般不可省略。例如:有可以省略,其他进制在书写时后缀一般不可省略。例如:有4个数分别为个数分别为375D、101B、76Q、A17H,从后缀字母就可以知到他们分别是十进制数、二进,从后缀字母就可以知到他们分别是十进制数、二进制数、八

5、进制数和十六进制数。制数、八进制数和十六进制数。计算机系统设计师和程序员更钟情于采用程序设计语言的记号来表示不同进制的计算机系统设计师和程序员更钟情于采用程序设计语言的记号来表示不同进制的数,这就是前缀表示法,例如:在数,这就是前缀表示法,例如:在C语言中,八进制常数以前缀语言中,八进制常数以前缀0开始,十六进制开始,十六进制常数以前缀常数以前缀0 x开始。开始。2.1.2 2.1.2 无符号数和带符号数无符号数和带符号数所谓无符号数,就是整个机器字长的全部二进制位均表示数值位(没有所谓无符号数,就是整个机器字长的全部二进制位均表示数值位(没有符号位),相当于数的绝对值。例如:符号位),相当于

6、数的绝对值。例如:N1=01001 表示无符号数表示无符号数9。N2=11001 表示无符号数表示无符号数25。机器字长为机器字长为n+1位的无符号数的表示范围是位的无符号数的表示范围是0(2n+1-1),此时二进制的),此时二进制的最高位也是数值位,其权值等于最高位也是数值位,其权值等于2n。若字长为。若字长为8位,则数的表示范围为位,则数的表示范围为0255。一般计算机中都设置有一些无符号数的运算和处理指令。如一般计算机中都设置有一些无符号数的运算和处理指令。如Intel 8086中中的的MUL和和DIV指令就是无符号数的乘法和除法指令,还有一些条件转移指令就是无符号数的乘法和除法指令,还

7、有一些条件转移指令也是专门针对无符号数的。指令也是专门针对无符号数的。然而,大量用到的数据还是带符号数,即正、负数。在日常生活中用然而,大量用到的数据还是带符号数,即正、负数。在日常生活中用“+”、“-”号加绝对值来表示数值的大小,用这种形式表示的数值在号加绝对值来表示数值的大小,用这种形式表示的数值在计算机技术中称为计算机技术中称为“真值真值”。对于数的符号对于数的符号“+”和和“-”,计算机是无法识别的,因此需要把符号数码,计算机是无法识别的,因此需要把符号数码化。通常,约定二进制数的最高位为符号位,化。通常,约定二进制数的最高位为符号位,“0”表示正号,表示正号,“1”表示表示负号。这种

8、在计算机中使用的表示数的形式称为机器数,常见的机器数有负号。这种在计算机中使用的表示数的形式称为机器数,常见的机器数有原码、反码、补码等不同的表示形式。原码、反码、补码等不同的表示形式。带符号数的最高位被用来表示符号位,而不再表示数值位。前例中的带符号数的最高位被用来表示符号位,而不再表示数值位。前例中的N1、N2在这里的含义变为:在这里的含义变为:N1=01001 表示表示+9。N2=11001 根据机器数的不同形式表示不同的值,如是原码则表示根据机器数的不同形式表示不同的值,如是原码则表示-9,补,补码则表示码则表示-7,反码则表示,反码则表示-6。为了能正确地区别出真值和各种机器数,本书

9、用为了能正确地区别出真值和各种机器数,本书用X表示真值,表示真值,X原原表示原表示原码,码,X补补表示补码,表示补码,X反反表示反码。表示反码。2.1.3 2.1.3 原码表示法原码表示法原码表示法是一种最简单的机器数表示法,其最高位为符号位,符号位原码表示法是一种最简单的机器数表示法,其最高位为符号位,符号位为为“0”时表示该数为正,符号位为时表示该数为正,符号位为“1”时表示该数为负,数值部分与时表示该数为负,数值部分与真值相同。真值相同。若真值为纯小数,它的原码形式为若真值为纯小数,它的原码形式为XS。X1X2XN,其中,其中XS表示符号位。表示符号位。原码的定义为:原码的定义为:2.1

10、.42.1.4补码表示法补码表示法1.模和同余模和同余为了实现理解补码表示法,首先需要引入模和同余的概念。为了实现理解补码表示法,首先需要引入模和同余的概念。模(模(Module)是指一个计数器的容量,可用)是指一个计数器的容量,可用M表示。例如:一个表示。例如:一个4位的位的二进制计数器,当计数器从二进制计数器,当计数器从0计到计到15之后,再加之后,再加1,计数值又变为,计数值又变为0。这个。这个计数器的容量计数器的容量M=24=16,即模为,即模为16。由此可见,纯小数的模为。由此可见,纯小数的模为2,一个字,一个字长为长为n+1位的纯整数的模为位的纯整数的模为2n+1。同余概念是指两个

11、整数同余概念是指两个整数A和和B除以同一个整数除以同一个整数M,所得余数相同,则称,所得余数相同,则称A和和B对对M同余,即同余,即A和和B在以在以M为模时相等的,可写作为模时相等的,可写作 A=B(mod M)对钟表而言,其模对钟表而言,其模M=12,故,故4点和点和16点、点、5点和点和17点、点、均是同余,它均是同余,它们可以写作们可以写作 4=16(mod 12),), 5=17(mod 12)利用模和同余概念的补码表示法在进行算术运算时可以使减法运算转化利用模和同余概念的补码表示法在进行算术运算时可以使减法运算转化成加法运算,从而简化机器的运算器电路。成加法运算,从而简化机器的运算器

12、电路。2补码表示补码表示 补码的符号位表示方法与原码相同,其数值部分的表示与数的正负有补码的符号位表示方法与原码相同,其数值部分的表示与数的正负有关:对于正数,数值部分与真值形式相同;对于负数,将真值的数值部关:对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反,且在最低位加分按位取反,且在最低位加1。若真值为纯小数,它的补码形式为若真值为纯小数,它的补码形式为 XS.X1X2XN,其中,其中XS表示符号位。表示符号位。补码的定义为:补码的定义为:3由真值、原码转换为补码由真值、原码转换为补码采用补码系统的计算机需要将真值或原码形式表示的数据转化为补码形采用补码系统的计算机需

13、要将真值或原码形式表示的数据转化为补码形式,以便于运算器对其进行运算。通常,从原码形式入手求补码。式,以便于运算器对其进行运算。通常,从原码形式入手求补码。当当X为正数为正数X补补=X原原=X。当当X为负数时,其为负数时,其X补补等于把等于把X原原除去符号位外的各位求反除去符号位外的各位求反后再加上后再加上1。反之,当反之,当X为负数时,已知为负数时,已知X补补,也可通过对其除符号位外,也可通过对其除符号位外的各位反加的各位反加1来求得来求得X原原。当当X为负数时,由为负数时,由X原原转换为转换为X补补的另一种更有效地方法是的另一种更有效地方法是:自低位向高位,尾数的第一个:自低位向高位,尾数

14、的第一个1及其右部的及其右部的0保持不变,左部的保持不变,左部的各位取反,符号位保持不变。各位取反,符号位保持不变。2.1.5 2.1.5 反码表示法反码表示法反码表示法与补码表示法有许多类似之处,对于正数,数值部分与真值反码表示法与补码表示法有许多类似之处,对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反。它与补码的区别是形式相同;对于负数,将真值的数值部分按位取反。它与补码的区别是末位少加一个末位少加一个1,因此很容易从补码的定义推出反码的定义。,因此很容易从补码的定义推出反码的定义。若真值为纯小数,它的反码形式为若真值为纯小数,它的反码形式为XS。X1X2XN,其中,

15、其中XS表示符号位。表示符号位。反码的定义为:反码的定义为:2.1.6 2.1.6 三种机器数的比较与转换三种机器数的比较与转换1.比较比较原码,补码和反码这三种机器码数既有共同点,又有各自不同的性质,主要区原码,补码和反码这三种机器码数既有共同点,又有各自不同的性质,主要区别有以下几点:别有以下几点: 对于正数它们都等于真值本身,对于负数则各有不同的表示。对于正数它们都等于真值本身,对于负数则各有不同的表示。 最高位都表示符号位,补码和反码的符号位可作为数值位的一最高位都表示符号位,补码和反码的符号位可作为数值位的一部分看待,和数值位一起参加运算;但原码的符号位不允许和数值位部分看待,和数值

16、位一起参加运算;但原码的符号位不允许和数值位同等看待,必须分开进行处理。同等看待,必须分开进行处理。对于真值对于真值0,原码和反码各有两种不同的表示形式,而补码只有,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。唯一的一种表示形式。原码、反码表示的正、负数范围相对于零来说是对称的;但补原码、反码表示的正、负数范围相对于零来说是对称的;但补码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝对值码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝对值最大的负数),其值等于最大的负数),其值等于-2n(纯整数)或(纯整数)或-1(纯小数)。(纯小数)。2.转换转换三种不同

17、机器码以及真值之间的转换关系如图所示。三种不同机器码以及真值之间的转换关系如图所示。从图从图2-1可以看出,真值可以看出,真值X与补码反码之间的转换通常是通过原码实现的与补码反码之间的转换通常是通过原码实现的,如果已熟练掌握了转换方法,也可以直接完成真值与补码或反码之间,如果已熟练掌握了转换方法,也可以直接完成真值与补码或反码之间的转换。的转换。 如果已知机器的字长,则机器数的位数应补够相应的位数。例如,设机如果已知机器的字长,则机器数的位数应补够相应的位数。例如,设机器字长为器字长为8位,则:位,则:X=1011 X原原=00001011 X补补=00001011 X反反=00001011X

18、=-1011 X原原=10001011 X补补=11110101 X反反=11110100X=0.1011 X原原=0.1011000 X补补=0.1011000 X反反=0.1011000X=-0.1011 X原原=1.1011000 X补补=1.0101000 X反反=1.01001112.22.2机器数的定点表示与浮点表示机器数的定点表示与浮点表示2.2.1 定点表示法 2.2.2 浮点表示法 2.2.3 浮点数阶码的移码表示法 2.2.4 定点、浮点表示法与定点、浮点计算机 2.2.5 浮点数尾数的基数 2.2.1 2.2.1 定点表示法定点表示法 在定点表示法中约定:所有数据的小数点

19、位置固定不变。通常,把小数点固定在定点表示法中约定:所有数据的小数点位置固定不变。通常,把小数点固定在有效数位的最前面或末尾,这就形成了两类定点数。在有效数位的最前面或末尾,这就形成了两类定点数。1.定点小数定点小数 定点小数即纯小数,小数点的位置固定在最高有效数位之前、符号位之后,如定点小数即纯小数,小数点的位置固定在最高有效数位之前、符号位之后,如图所示。定点小数的小数点位置是隐含约定的,小数点并不需要真正地占据一图所示。定点小数的小数点位置是隐含约定的,小数点并不需要真正地占据一个二进制位。个二进制位。. .X XS SX X1 1X Xn-1n-1X Xn nn n位数值位位数值位数符

20、数符小数点位置(隐含)小数点位置(隐含)当当XS=0,X1=1,X2=1,, Xn=1时,时,X为最大整数,其真值为最大整数,其真值等于:等于:X最大正数最大正数=1-2-n当当Xn=1,XS=0,X1=0,, Xn-1=0时,时,X为最小整数,其真为最小整数,其真值等于:值等于:X最小正数最小正数=2-n当当XS=1,表示,表示X为负数时,情况要稍微复杂一些,这是因为在计算机中为负数时,情况要稍微复杂一些,这是因为在计算机中带符号数可用补码表示,也可用原码表示,原码和补码的表示范围有一带符号数可用补码表示,也可用原码表示,原码和补码的表示范围有一些差别。些差别。 若机器数为原码,当若机器数为

21、原码,当XSXn均等于均等于1时,时,X为绝对值最大的负数,其真值为绝对值最大的负数,其真值等于:等于:X绝对值最大负数绝对值最大负数=-1综上所述,设机器字长有综上所述,设机器字长有n+1位,原码定点小数的表示范围为位,原码定点小数的表示范围为-(1-2-n)()(1-2-n),),补码定点小数的表示范围为补码定点小数的表示范围为-1(1-2-n)。若字长为)。若字长为8位,原码定点小数的表示范围位,原码定点小数的表示范围为为 ,补码定点小数的表示范围为,补码定点小数的表示范围为 。2.定点整数定点整数定点整数即纯整数,小数点位置隐含固定在最低有效数位之后,如图所示。定点整数即纯整数,小数点

22、位置隐含固定在最低有效数位之后,如图所示。 综上所述综上所述,设机器字长为设机器字长为n+1位位,原码定点整数的表示范围为原码定点整数的表示范围为-(2n-1)(2n-1),补码定点整补码定点整数的表示范围数的表示范围-2n(2n-1)。若字长为。若字长为8位,原码定点整数的表示范围为位,原码定点整数的表示范围为-127127,补,补码定点整数的表示范围为码定点整数的表示范围为-128127。在定点表示法中,参加运算的数以及运算结果都必须保证落在该定点数所能表示的在定点表示法中,参加运算的数以及运算结果都必须保证落在该定点数所能表示的数值范围内,如果结果大于最大正数和小于绝对值最大的负数,统称

23、为数值范围内,如果结果大于最大正数和小于绝对值最大的负数,统称为“溢出溢出”。这是计算机将暂时中止运算操作,而进行溢出处理。这是计算机将暂时中止运算操作,而进行溢出处理。. .X XS SX X1 1X Xn-1n-1X Xn nn n位数值位位数值位数符数符小数点位置(隐含)小数点位置(隐含)需要说明的是,现代计算机中大多只采用整数数据表示,小数则通过浮需要说明的是,现代计算机中大多只采用整数数据表示,小数则通过浮点数表示来实现。点数表示来实现。根据前述方法不难推出:根据前述方法不难推出:X最大正数最大正数=2n-1X最小正数最小正数=1X绝对值最大负数绝对值最大负数=-(2n-1) (原码

24、表示时)(原码表示时)X绝对值最大负数绝对值最大负数=-2n (补码表示时)(补码表示时)2.2.2 2.2.2 浮点表示法浮点表示法在科学计算中,计算机处理的数往往是混合数,他既有整数部分又有小在科学计算中,计算机处理的数往往是混合数,他既有整数部分又有小数部分,如果要将这些数变为上述约定的两定点数形式,就必须在运算数部分,如果要将这些数变为上述约定的两定点数形式,就必须在运算前设定一个比例因子,把原始的数缩小成定点小数或扩大成定点整数,前设定一个比例因子,把原始的数缩小成定点小数或扩大成定点整数,运算后的结果还需要根据比例因子还原成实际的数值,这样会给编程带运算后的结果还需要根据比例因子还

25、原成实际的数值,这样会给编程带来很多麻烦。另外,在运算中常常遇到非常大或非常小的数值,如果用来很多麻烦。另外,在运算中常常遇到非常大或非常小的数值,如果用同样的比例因子来处理的话,很难兼顾数值的范围和运算精度的要求。同样的比例因子来处理的话,很难兼顾数值的范围和运算精度的要求。因此,在计算机中引入了浮点数表示。因此,在计算机中引入了浮点数表示。让小数点的位置根据需要而浮动,这就是浮数点。例如:让小数点的位置根据需要而浮动,这就是浮数点。例如:N=MrE公式中:公式中:r是浮点数阶码的底,与尾数的基数相同,通常是浮点数阶码的底,与尾数的基数相同,通常r=2。E和和M都是都是带符号的定点数,带符号

26、的定点数,E叫做阶码(叫做阶码(Exponent),),M叫做尾数(叫做尾数(Mantissa)。)。在大多数计算机中,尾数是纯小数,常用原码或补码表示;阶码为纯整在大多数计算机中,尾数是纯小数,常用原码或补码表示;阶码为纯整数,常用移码或补码表示。数,常用移码或补码表示。1浮点数的表示范围浮点数的表示范围设某浮点数的格式如图所示,设某浮点数的格式如图所示,k和和n分别表示阶码和尾数的数值位位数(分别表示阶码和尾数的数值位位数(不包括符号位),尾数和阶码均用补码表示。不包括符号位),尾数和阶码均用补码表示。当当es=0,ms=0,阶码和尾数的数值位各位全为,阶码和尾数的数值位各位全为1 (即阶

27、码和尾即阶码和尾数都为最大整数数都为最大整数) 时,该浮点数为最大正数:时,该浮点数为最大正数:X最大正数最大正数=1-2-n当当es=1,ms=0,尾数的最低为,尾数的最低为mn=1,其余各位为,其余各位为0(即阶码为即阶码为绝对值最大的负数,尾数为最小正数绝对值最大的负数,尾数为最小正数)时,该浮点数为最小正数时,该浮点数为最小正数:X最小正数最小正数=2-n2-2k-1当当es=0,阶码的数值位为全,阶码的数值位为全1;mn=1,尾数的数值位为全,尾数的数值位为全0(即阶码为最大正数,尾数为绝对值最大的负数)时,该浮点数为即阶码为最大正数,尾数为绝对值最大的负数)时,该浮点数为绝对值最大

28、负数:绝对值最大负数:X绝对值最大负数绝对值最大负数=-122k-11位位k位位1位位n位位emesms阶码部分阶码部分E尾数部分尾数部分M2.规格化浮点数规格化浮点数为了提高运算的精度,需要充分的利用尾数的有效数位,通常采取浮点为了提高运算的精度,需要充分的利用尾数的有效数位,通常采取浮点数规格化形式,即规定尾数的最高位必须是一个有效值。数规格化形式,即规定尾数的最高位必须是一个有效值。一个浮点数的表示形式并不是唯一的。例如:二进制数一个浮点数的表示形式并不是唯一的。例如:二进制数0.0001101可以表可以表示为示为0.0011012-01、0.011012-10、0.11012-11而其

29、中只有而其中只有0.11012-11是规格化数,这就如同十进制实数中的科学标识法一样。是规格化数,这就如同十进制实数中的科学标识法一样。规格化浮点数的尾数规格化浮点数的尾数M的绝对值应该在下列范围内:的绝对值应该在下列范围内:如果如果r=2,则有,则有 。尾数用原码表示时,规格化浮点数的尾数的最高。尾数用原码表示时,规格化浮点数的尾数的最高数位总等于数位总等于1。在尾数用补码表示时,规格化浮点数应满足尾数最高位与。在尾数用补码表示时,规格化浮点数应满足尾数最高位与符号位不同(符号位不同(ms m1=1),即当),即当 时,应有时,应有0.1形式;当形式;当 时,应有时,应有1.0形式。形式。注

30、意:当注意:当 时,对于原码来说,这是一个规格化数,而对于补时,对于原码来说,这是一个规格化数,而对于补码来说,这不是一个规格化数;当码来说,这不是一个规格化数;当M=-1时,对于原码来说,这将无法表时,对于原码来说,这将无法表示,而对于补码来说,这是一个规格化数。示,而对于补码来说,这是一个规格化数。当当es=1,ms=0,尾数最高位,尾数最高位m1=1,其余各位为其余各位为0时,该浮点时,该浮点数为规格化的最小正数:数为规格化的最小正数: X规格化的最小正数规格化的最小正数=2-12-2k规格化的最小正数大于非规格化的最小正数。规格化的最小正数大于非规格化的最小正数。2.2.3 2.2.3

31、 浮点数阶码的移码表示法浮点数阶码的移码表示法浮点数的阶码是带符号的定点整数,理论上说他可以用前面提到的任何浮点数的阶码是带符号的定点整数,理论上说他可以用前面提到的任何一种机器数的表示方法来表示,但在多数通用计算机中,它还采用另一一种机器数的表示方法来表示,但在多数通用计算机中,它还采用另一种编码方法种编码方法移码表示法。移码表示法。移码就是在真值移码就是在真值X基础上加一个常数,这个常数称为偏置值,相当于基础上加一个常数,这个常数称为偏置值,相当于X在在数轴上向正方向偏移了若干单位,这就是数轴上向正方向偏移了若干单位,这就是“移码移码”一词的由来,移码也一词的由来,移码也可称为增码或偏码。

32、即:可称为增码或偏码。即: X移移=偏置值偏置值+X2.2.4 2.2.4 定点、浮点表示法与定点、浮点计算机定点、浮点表示法与定点、浮点计算机1. 定点、浮点表示法的区别定点、浮点表示法的区别(1)数值的表示范围)数值的表示范围(2)精度)精度(3)数的运算)数的运算(4)溢出处理)溢出处理2. 定点机与浮点机定点机与浮点机由于浮点数的运算比较复杂,所以并不是所有的计算机都具有浮点运算由于浮点数的运算比较复杂,所以并不是所有的计算机都具有浮点运算功能,通常可以将计算机分为一下几种。功能,通常可以将计算机分为一下几种。(1)定点机)定点机(2)定点机)定点机+浮点运算部件浮点运算部件(3)浮点

33、机)浮点机2.2.5 2.2.5 浮点数尾数的基数浮点数尾数的基数1.尾数基数大小的选择尾数基数大小的选择已知,浮点数已知,浮点数N=MrE。其中:。其中:r是阶码的底,又称为尾数的基数,在是阶码的底,又称为尾数的基数,在前面讨论中,前面讨论中,r可以等于可以等于4,8,16。浮点数尾数基数的选择对浮点数的特性起着主要作用,它既影响浮点运浮点数尾数基数的选择对浮点数的特性起着主要作用,它既影响浮点运算的精度,也影响数值的表示范围。采用较大的算的精度,也影响数值的表示范围。采用较大的r值,在阶码位数相同的值,在阶码位数相同的情况下,可以扩大浮点数的表示范围。假定某浮点数字长情况下,可以扩大浮点数

34、的表示范围。假定某浮点数字长32位,阶码部位,阶码部分(阶符和阶码数值位)共分(阶符和阶码数值位)共8位,尾数部分(尾符与尾数数值位)共位,尾数部分(尾符与尾数数值位)共24位位,均用补码表示。,均用补码表示。若若r=2,规格化浮点数的表示范围为规格化浮点数的表示范围为-12127X(1-2-23)2127,最小正数为,最小正数为2-12-128。若若r=16,规格化浮点数的表示范围为规格化浮点数的表示范围为-116127X(1-2-23)16127,最小正数为,最小正数为16-116-128。事实上,在以事实上,在以r进制为尾数基数的浮点数中,当尾数的位数为二进制进制为尾数基数的浮点数中,当

35、尾数的位数为二进制n位位时,就相当于时,就相当于r进制的尾数有进制的尾数有2.尾数基数尾数基数r对浮点数特性的影响对浮点数特性的影响改变尾数基数改变尾数基数r,会使浮点数的特性有下列影响:会使浮点数的特性有下列影响:可表示数的范围。随着可表示数的范围。随着r的增大,可表示数的范围增大。的增大,可表示数的范围增大。可表示数的个数。随着可表示数的个数。随着r的增大,可表示数的个数增加。的增大,可表示数的个数增加。数在数轴上的分布。数在数轴上的分布。r越大,数在数轴上的分布密度愈稀越大,数在数轴上的分布密度愈稀。可表示数的精度。随着可表示数的精度。随着r的增大,可表示数的精度单调下的增大,可表示数的

36、精度单调下降。降。运算中的精度损失。运算中的精度损失。r越大,尾数右移的机会越小,可降越大,尾数右移的机会越小,可降低运算中因尾数右移所造成的精度损失。低运算中因尾数右移所造成的精度损失。运算速度。运算速度。r增大,将使运算中移位的次数减少,运算速增大,将使运算中移位的次数减少,运算速度可以提高。度可以提高。以上以上6条中,第、条都是优点;但第、条则是缺点。为条中,第、条都是优点;但第、条则是缺点。为了扬长避短,在巨、大、中型机上,浮点数尾数基数了扬长避短,在巨、大、中型机上,浮点数尾数基数r宜取大些,而在微宜取大些,而在微、小型机上,、小型机上,r值宜取小些。值宜取小些。2.3 2.3 非数

37、值数据表示非数值数据表示 2.3.1 2.3.1 字符和字符串表示字符和字符串表示1.ASCII字符编码字符编码由于计算机内部只能识别和处理二进制代码,所以字符必须按照一定由于计算机内部只能识别和处理二进制代码,所以字符必须按照一定的规则用一组二进制编码来表示。字符编码方式有很多种,现在用的的规则用一组二进制编码来表示。字符编码方式有很多种,现在用的最广泛的美国国家信息交换标准符码(最广泛的美国国家信息交换标准符码(American Standard Code for Information Interchange ,ASCII)。2.字符串的存放字符串的存放字符串是一串连续的字符。通常,它们

38、在存储器中占用一片连续的空字符串是一串连续的字符。通常,它们在存储器中占用一片连续的空间,每个字节存放一个字符代码,字符串的所有元素(字符)在物理间,每个字节存放一个字符代码,字符串的所有元素(字符)在物理上是邻接的,这种字符串的存储方法称为向量法。上是邻接的,这种字符串的存储方法称为向量法。2.3.2 2.3.2 汉字的表示汉字的表示汉字处理技术是计算机推广应用工作中必须要解决的问题。汉字的字数汉字处理技术是计算机推广应用工作中必须要解决的问题。汉字的字数繁多,字形复杂,读音多变,常用的汉字就有繁多,字形复杂,读音多变,常用的汉字就有7000个左右。要在计算机个左右。要在计算机中表示汉字,最

39、方便的方法是为汉字安排一个编码,而且要使这些编码中表示汉字,最方便的方法是为汉字安排一个编码,而且要使这些编码与西方字符和其他字符有明显的区别。与西方字符和其他字符有明显的区别。1.汉字国际码汉字国际码2.汉字区位码汉字区位码3、汉字机内码、汉字机内码4.汉字字形码汉字字形码5.汉字编码的发展汉字编码的发展2.3.3 2.3.3 统一代码统一代码随着国际的交流与合作的扩大,信息处理应用对字符集提出了多随着国际的交流与合作的扩大,信息处理应用对字符集提出了多文种、大字量、多用途的要求,解决问题的最佳方案是设计一种文种、大字量、多用途的要求,解决问题的最佳方案是设计一种全新的编码方法,这种方法必须

40、有足够的能力来表示任意一种语全新的编码方法,这种方法必须有足够的能力来表示任意一种语言里使用的所有符号,这就是统一代码(言里使用的所有符号,这就是统一代码(Unicode)。)。Unicode可分为编码方式和实现方式两个层次。可分为编码方式和实现方式两个层次。1.编码方式编码方式2.实现方式实现方式2.4 2.4 十进制数和数串的表示十进制数和数串的表示2.4.1 十进制数十进制数的编码的编码2.4.2 十进制数十进制数串串2.4.1 2.4.1 十进制数的编码十进制数的编码 二进制是计算机最适合的数据表示方法,把十进制数的各位数字变成一二进制是计算机最适合的数据表示方法,把十进制数的各位数字

41、变成一组对应的二进制代码,用组对应的二进制代码,用4位二进制数来表示位二进制数来表示1位十进制数,称为二进制位十进制数,称为二进制编码的十进制数(编码的十进制数(Binary Code Decimal),即),即BCD码。码。4位二进制数可位二进制数可以组合出以组合出16种代码,能表示种代码,能表示16种不同的状态,只需要使用其中的种不同的状态,只需要使用其中的10种状种状态,就可以表示十进制数的态,就可以表示十进制数的09十个数码,而其他的十个数码,而其他的6种状态为冗余状态种状态为冗余状态。由于可以取任意的。由于可以取任意的10种代码来表示种代码来表示10个数码,所以就可能产生多种个数码,

42、所以就可能产生多种BCD编码。编码。BCD编码既具有二进制的形式,又保持了十进制的特点,可编码既具有二进制的形式,又保持了十进制的特点,可以作为人机联系的一种中间表示,也可以用它直接进行运算。表以作为人机联系的一种中间表示,也可以用它直接进行运算。表2-6列出列出了几种常见的了几种常见的BCD码。码。18421码码22421码码3余余3码码4格雷码(格雷码(Gray)码)码2.4.2 2.4.2 十进制数串十进制数串十进制数在计算机中是以数串的形式存储和处理的。十进制数串的长度十进制数在计算机中是以数串的形式存储和处理的。十进制数串的长度是可变的,不受定点数和浮点数统一格式的约束。十进制数在计

43、算机内是可变的,不受定点数和浮点数统一格式的约束。十进制数在计算机内有两种表达形式:非压缩的十进制数和压缩的十进制数。有两种表达形式:非压缩的十进制数和压缩的十进制数。1.非压缩的十进制数串非压缩的十进制数串2.压缩的十进制数串压缩的十进制数串2.5 2.5 现代微型计算机系统中的数据表示举例现代微型计算机系统中的数据表示举例现代的微型计算机系统大多采用现代的微型计算机系统大多采用Intel系列的微处理器,近年来,系列的微处理器,近年来,Intel的的微处理器有了极大的发展,从微处理器有了极大的发展,从80386到到80486,Pentium, Pentium MMX, Pentium Pro

44、, Pentium II, Pentium III,直至直至Pentium 4,形成了形成了IA(Intel Architecture)-32结构。而最新的结构。而最新的 Itanium处理器是目前处理器是目前 Intel公司推出的公司推出的最高端处理器,是第一款真正最高端处理器,是第一款真正64位的产品(位的产品(IA-64)。下面以)。下面以IA-32结构结构为例,介绍现代微机系统的数据表示。为例,介绍现代微机系统的数据表示。IA-32结构的基本数据类型是字节、字、双字(结构的基本数据类型是字节、字、双字(DWORD)、四字(、四字(QWORD)和双四字和双四字(DQWORD。1. 无符号

45、整数无符号整数2. 带符号整数带符号整数3. 浮点数浮点数4. 指针数据指针数据5. 串数据串数据6.BCD数数2.6 2.6 数据校验码数据校验码2.6.1 2.6.1 奇偶校验码奇偶校验码1.奇偶校验概念奇偶校验概念奇偶校验码是一种最简单的数据校验码,它的码距等于奇偶校验码是一种最简单的数据校验码,它的码距等于2,可以检测出一位,可以检测出一位错误(或奇数位错误),但不能确定出错的位置,也不能检测出偶数位错错误(或奇数位错误),但不能确定出错的位置,也不能检测出偶数位错误。事实上一位出错的概率比多位同时出错的概率要高得多,所以虽然奇误。事实上一位出错的概率比多位同时出错的概率要高得多,所以

46、虽然奇偶校验码的检错能力很低,但还是一种应用最广泛的校验方法,常用于存偶校验码的检错能力很低,但还是一种应用最广泛的校验方法,常用于存储器读、写检查或储器读、写检查或ASCII字符传送过程中的检查。字符传送过程中的检查。2.简单奇偶校验简单奇偶校验简单奇偶校验仅实现横向的奇偶校验,表给出几个字节的奇偶校验码的编简单奇偶校验仅实现横向的奇偶校验,表给出几个字节的奇偶校验码的编码结果。奇偶校验实现方法是:由若干位有效信息(如一个字节),再加码结果。奇偶校验实现方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。上一个二进制位(校验位)组成校验码。3. 交叉奇偶校验交叉奇偶校验计算机在进行大量字节(数据块)传送时,不仅每一个字节有一个奇偶计算机在进行大量字节(数据块)传送时,不仅每一个字节有一个奇偶校验位做横向校验,而且全部字节的同一位也设置一个奇偶校验位做纵校验位做横向校验,而且全部字节的同一位也设置一个奇偶校验位做纵向校验,这种横向、纵向同时校验的方法称为交叉校验。向校验,这种横向、纵向同时校验的方法称为交叉校验。2.

温馨提示

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

评论

0/150

提交评论