数据表示方法.pptx
《数据表示方法.pptx》由会员分享,可在线阅读,更多相关《数据表示方法.pptx(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、21 数据表示方法和运算器数据表示方法和运算器 2 21 11 1计算机中数据的表示方法计算机中数据的表示方法 当前的计算机所采用的存储器件都是两态器件,所以适合于存放二进制数据。尽管为了方便起见,也使用其他进制,如十进制、十六进制,但是在计算机内部数据还是以二进制的形式存放和处理。二进制只使用了两个不同的数字符号,易于用物理器件来实现:在物理世界中具有两个稳定状态的物理器件很多,如晶体管的“截止”与“导通”、电容的“充电”与“放电”、电压信号的“高”与“低”、脉冲的“有”与“无”,电磁单元的“正向磁化”与“反向磁化”等等,只要规定其中一种稳定状态表示“1”,另一种稳定状态表示“0”,就可以用
2、来表示二进制数位了。其次,二进制的运算规则非常简单,易于用电子器件来实现。数据的类型多种多样,如文件、图、表、树、阵列、链表、栈、向量、串、实数、整数、布尔数、字符等。计算机里用到的数据类型主要可分为两类:表示数量的数值数据和非数值性的符号数据。所有的数据都是以二进制的形式在计算机里处理和存储。本节主要讲述数值数据在计算机里的表示方法。第1页/共73页 1数值数据表示方法数值数据表示方法 在计算机中表示数时,需要考虑以下几个因素:要表示的数的类型(小数、整数、实数和复数)、符号如何表示以及小数点的位置;可能遇到的数值范围;数值精确度;数据存储和处理所需要的硬件代价。计算机中表示数值符号的方法是
3、占用一位二进制位,1表示负号、0表示正号。常用的数值数据表示格式有两种,根据小数点的位置是固定不变还是浮动变化的分为定点格式和浮点格式。一般来说,定点格式容许的数值范围有限,但要求的处理硬件比较简单。而浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。(1)(1)定点数的表示方法 所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“”来表示。原理上讲,小数点位置固定在哪一位都可以,但是通常将数据表示成纯小数或纯整数。第2页/共73页 例如用一个n1位字来表示一个定点数x,其中一位x0用来表示数的符号,其余位数代表它的量值。为了将整个n1位
4、统一处理起见,符号位x0放在最左位置,并用数值 0和1分别代表正号和负号,这样,对于任意定点数x=x0 x1x2xn,在定点机中可表示为如下形式:x0 x1 x2 xn-1 xn符号 数量值 第3页/共73页 如果数x表示的是纯小数,那么小数点位于x0和x1之间。当x0 x1x2xn各位均为0时,数x的绝对值最小,当各位均为1时,x的绝对值最大,故数的表示范围为0 x12n 如果数x表示的是纯整数,那么小数点位于最低位xn的右边,此时数x的表示范围为 0 x2n1,目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。(2)浮点数的表示方法 采用浮点表示法表示的数据叫做浮点数
5、,采用浮点数进行运算的机器叫做“浮点机”。浮点数是指小数点位置可以改变的数,显然浮点数可用来表示带符号的实数。例如:表示8位字长的二进制浮点数可以写成 0.101101012111 尾 数 阶码 第4页/共73页 任意一个十进制数N可以写成 N=10ZX,同样,在计算机中一个任意进制数N可以写成 N=Bz X其中X称为浮点数的尾数,是一个纯小数。z是比例因子的指数,称为浮点的指数,是一个整数。比例因子的基数B是一个常数,一般规定只为2,8或16。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出指数,用整数形式表示,
6、常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组成:第5页/共73页 3232位浮点数的标准格式为:Z0Z1Z2Zn-1ZnX0X1X2Xn-1Xn阶符阶码数符尾数31302322032位浮点数FZX64位浮点数的标准格式为:63625251064位浮点数FZX第6页/共73页不论是32位浮点数还是64位浮点数,规定基数B2。由于基数2是固定常数,不必用显示方式来表示它。32位的浮点数中,F是浮点数的符号位,占1位,安排在最高位,F0表示正数,F1表示负数。X是尾数,放在低位部分,占用23位,用小数表示,小
7、数点放在尾数域的最前面。Z是阶码,占用8位,阶符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数值z变成阶码Z时,应将指数z加上一个固定的偏移值127(01111111),即Zz127。一个规格化的32位浮点数X的值可表示为X(1)F(1X)2E127 其中尾数域所表示的值是1X。因为规格化的浮点数的尾数域最左位也即最高有效位总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。第7页/共73页 64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的6
8、4位浮点数X的真值为X=(1)F(1X)2E1O23zE1023若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。例如05也可以表示成005101,50102等等。为了提高数据的表示精度,当尾数的值不为0时,其绝对值应05,即尾数域的最高有效位应为1,否则要以修改阶码同时左右移小数点的办法,使其变成这一要求的表示形式,这称为浮点数的规格化表示。当一个浮点数的尾数为0,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零。浮点数所表示的范围远比定点数大的多。假设(考虑符号位)机器中的数由8位二进制数表示时:在定点机中
9、这8位全部用来表示有效数字(包括符号);在浮点机中若阶符阶码占3位,数符尾数占5位。在此情况下,若只考虑正数值,定点机小数表示的数的范围是00000000到01111111,相当于十进制数的0到127,而浮点机所能表示的数的范围是21100001到21101111,相当于十进制数的112875。显然,都用8位,浮点机能表示的数的范围比定点机大得多。第8页/共73页 一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。【例21】若浮点数X0的二进制存储格式为(43240000)16
10、,求其32位浮点数的十进制值。解:将16进制数展开后,可得二制数格式为 0 100 0011 0 010 0100 0000 0000 0000 0000 F 阶码(8位)尾数(23位)指数z阶码127100001100111111100000111(7)10。包括隐藏位1的尾数1X1010 0100 0000 0000 0000 00001010010 于是有 X0(1)F 1 X 2z (1 010010)27 10100100(187)10。第9页/共73页【例22】将十进制数1659375转换成32位浮点数的二进制格式来存储。解:首先分别将整数和分数部分转换成二进制数:16593751
11、000010011移动小数点,使其在第1位和第2位之间1000010011100001001124z4所以:F=0,E=4127=131,X=000010011则得到的32位浮点数的二进制存储格式为:01000001100001001100000000000000=(4184C000)16第10页/共73页(3)定点数据的编码方法真值与机器码机器码是数在计算机中的表示形式。对于数值数据而言,无论以定点形式表示或是以浮点形式表示,都需要通过某种编码方法,以计算机所能处理的0和1二进制位来表示其数值大小。通常一个数值数据的机内表示形式称为其机器码,而一个机器码所代表的数值称为该机器码的真值。计算机
12、中只有机器码,不存在数的真值。假设机器码的宽度为n,最高位为符号位,下面分别介绍实际应用中常见的4种机器码编码方法:原码、反码、补码和移码。原码表示法定点整数原码表示法定点整数原码的定义如下所示:第11页/共73页 X原=X0X2n1X原=2n1X2n1X0由定义可以看出,正整数的原码就是其自身,负整数的原码只需把其绝对值的原码的符号位置为1即可。(用0表示正号,用1表示负号)。原码表示方法的定点整数的取值范围为(2n1)X2n11。注意在原码表示法中,零有正零和负零之分。000000,010000。定点小数的原码表示法定点小数原码的定义如下所示:X 原 X 0X1X 原1X 1X0第12页/
13、共73页正的纯小数的原码就是其自身,而负的纯小数的原码可以通过把其绝对值的原码的符号位置1来得到。其取值范围为(12(n1)X(12(n1)。综上可以看出一个数的原码是由符号位加上数值位绝对值组成,符号位为0代表正数,符号位为1代表负数。由于0有0和0两种表示方法,n位二进制数可以表示2n1个原码。用原码实现乘除运算规则较简单,但做加减运算不方便。原码表示法的一个主要优点在于其真值和机器码表示之间对应关系很直观,容易转换。补码表示法定点整数的补码表示定点整数补码的定义如下所示:X补X0X2n1X补2nX2n1X0第13页/共73页 正整数的补码就是其自身,负整数的补码可以通过对其绝对值部分逐位
14、求反,并在最低位加1求得。同样,在补码表示法中,符号位为0表示正号,为1表示负号。其表示的真值X的范围为2n1X2n11。在补码表示中,0的机器码是惟一的,没有0和0之分。定点小数的补码表示定点小数补码的定义如下所示:X补X0X1X补2X1X0定点小数的补码求解方法与定点整数的补码求解方法相类似。其表示的真值X的范围为1X12-(n-1)。当n8时,1的定点小数补码表示为:10000000,而用定点整数的补码表示1,则为11111111。在补码表示方法中,0的编码是惟一的,所以n位二进 制数可以表示2n个补码。第14页/共73页 反码表示法定点整数的反码表示定点整数反码的定义如下所示:X反X0
15、X2n1X反(2n1)X2n1X0同样,正整数的反码就是其自身,而负整数的反码可以通过对其绝对值逐位求反来求得。在反码表示法中,符号位仍然用0表示正号,1表示负号。其表示的真值范围与原码相同:(2n11)X2n-11。数值0用反码表示亦有0和0之分。当n8时,0反00000000,0反11111111。定点小数的反码表示定点小数反码的定义如下所示:X反X0X1X反(22n1)X1X0第15页/共73页定点小数的反码求解方法类似定点整数的反码求解方法。其表示的真值的取值范围为:(12(n1)X(12(n1)。反码表示法中,由于0占有了两个不同的编码,所以,n位二进制数可以表示2n1个反码。移码表
16、示法定点整数的移码表示 X移2n1X2n-1X2n1定点小数的移码表示X移1X1X1移码的符号位与其他三种编码不同,用1表示正号而0表示负号。移码的求法其实也很简单,把其补码的符号位直接变反即可。所以在移码表示法中,0也有惟一的表示方法:10000000(n8)【例】设机器码长度为8,求X(6)10的原码、补码、反码和移码。第16页/共73页 解:X原 码 27(110)10000000 11010000110 X补 码 28(110)10000000 11011111010 X反 码(281)(110)1111111111011111001 X移 码 27(110)10000000 1100
17、1111010【例】设机器码长度为8,求X(03125)10(00101)2的原码、补码、反码和移码。解:X原码1X10(00101)1010110101000 X补码2X100(00101)1101111011000 X反 码(22 7)X(10000000001)(00101)11010111 X移 码1X10(00101)0101101011000 第17页/共73页实际上求某个数的原码、补码、反码和移码时不仅可以利用其定义式采求解,也可以通过这4个编码间的相互关系来求得。比如移码就可以通过把补码的符号位变反来求,而对于正数来讲其原码、补码和反码是完全相同的;一个负数的补码也可以很容易地
18、从其原码推知:除符号位外,各位取反,末位再加1即可。(4)浮点数据的编码方法计算机内部浮点数据表示成如下形式:FXZX第18页/共73页 FX是尾数的符号位,0表示正号而l表示负号;Z是阶码,通常用移码表示;X是定点小数形式的尾数,一般用补码或原码表示。【例2】某浮点数机器码10位,基数为2,阶码用4位移码表示,尾数5位用补码表示,符号位1位。求2100110l的编码。解:符号位FX0阶码Z(10)移码1010尾数X(01101)补码11010则其编码为0101011010【例】某浮点数机器码为17位,基数为2,阶码用4位移码表示,尾数用12位补码表示,符号位1位。求275的浮点编码形式。解:
19、首先把275表示成浮点形式:(275)10(0687522)10(01011)22(10)FX1第19页/共73页Z(10)移码1010X(01011)补码同一个浮点数可以有许多种不同的编码表示(改变其阶码),所以需要对浮点数进行规格化处理,以统一其形式,同时提高数据的表示精度。规格化处理(基数为2)尾数部分以纯小数形式表示,其绝对值应满足05X1。若不满足该条件,则需要修改阶码并对尾数进行移位,以使尾数满足该条件;当尾数为正时,无论其使用原码还是补码表示,X应满足条件:05X1。以二进制形式表示为X01xxx(x为0或1);用原码表示的负尾数,X满足1X05,以二进制形式表示为M11 xx
20、x(x为0或1);以补码表示的负尾数,X满足1M05,以二进制形式表示为X10 xx x(x为0或1);从上面的讨论可以看出,如果规格化的尾数用原码表示,则其最高位一定为1如果改用补码表示,则尾数的最高位与其符号位相反,即为0。第20页/共73页 2符号数据的表示方法符号数据的表示方法现代计算机不仅处理数值领域的问题,而且处理大量非数值领域的问题。这样一来,必然要引入文字、字母以及某些专用符号,以便表示文字语言、逻辑语言等信息。例如人机交换信息时使用英文字母、标点符号、十进制数以及诸如$,等符号。然而数字计算机只能处理二进制数据,因此,上述信息应用到计算机中时,都必须编写成二进制格式的代码,也
21、就是字符信息用数据表示,称为符号数据。最常见的编码格式为ASC码和EBCDIC码。(1)ASC码目前国际上普遍采用的一种字符系统是七单位的ASCII码(美国国家信息交换标准字符码),它包括10个十进制数码,26个英文字母和一定数量的专用符号,如$,等,总共128个元素,因此二进制编码需要7位,加上一个偶校验位,共8位,刚好为一个字节。表21列出了七单位的ASCII码字符编码表。ASCII码规定8个二进制位的最高一位为0,余下的7位可以给出128个编码,表示128个不同的字符。其中95个编码,对应着计算机终端能输人并且可以显示的95个字符,打印机设备也能打印这95个字符,如大小写各26个英文字母
22、,09这10个数字符,通用的运算符和标点符号,*,等等。另外的33个字符,其编码值为031和127,则不对应任何一个可以显示或打印的实际字符,它们被用作控制码,控制计算机某些外围设备的工作特性和某些计算机软件的运行情况。第21页/共73页计算机里的存储和传送单位通常使用Byte(1Byte8bit),所以7位的ASCII码也用一个字节来表示。ASCII编码和128个字符的对应关系如表21所示。表中编码符号的排列次序为,最高1位没有使用,通常填0;也可以把它用作校验位或者用来扩展字符集。表中未给出,列为高位部分,行为低位部分。ASCII的字符编码表一共有2416行,238列。低4位编码用作行编码
23、,而高3位用作列编码。值得注意的一点是数字“0”到“9”的编码:它们都位于3列(011),从0行(0000)排列到9行(1001),即“0”的ASCII码 为(0110000)2(30)16,“9”的 ASCII码 为(0111001)2(39)16。把高3位屏蔽掉,低4位恰是“0”“9”的二进制码。可以看出,十进制的8421码可以去掉(011)而得到。这个特点使得在数字符号(ASCII码)与数字值(二进制码)之间进行转换非常方便。第22页/共73页表21ASC字符编码表0000010100111001011101110000NULDELSP0Pp0001SOHDC1!1AQaq0010STX
24、DC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?OoDEL第23页/共73页字符串是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。当主存字由2 2个或4 4个字节组成时,在同一个主存字中,既可按从低位字节向高位字节的顺序存放字符串内容,也可按从高位字节向低位字节的次序顺序存放字符串内
25、容。这两种存放方式都是常用方式,不同的计算机可以选用其中任何一种。例如下述字符串:图2-1字符串在主存中的存放第24页/共73页IFABELSEREAD(C)就可以按图21所示从高位字节到低位字节依次存放在主存中。其中主存单元长度由4个字节组成。每个字节中存放相应字符的ASCII值,文字表达式中的空格“”在主存中也占一个字节的位置。因而每个字节分别存放十进制的73,70,32,65,62,66,32,69,76,83,69,32,82,69,65,68,40,67,41,32。(2)EBCDIC码EBCDIC(ExtendedBinaryCodedDecimalInterchangeCode)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 表示 方法
限制150内