数据表示方法欢迎光临长春金融高等专科学校课件

举报
资源描述
第二章 数据表示方法2-1 数据表示方法和运算器数据表示方法和运算器 2-2 逻辑部件逻辑部件 2-3 控制部件控制部件 21 数据表示方法和运算器数据表示方法和运算器 2 21 11 1计算机中数据的表示方法计算机中数据的表示方法 当前的计算机所采用的存储器件都是两态器件,所以适合于存放二进制数据。尽管为了方便起见,也使用其他进制,如十进制、十六进制,但是在计算机内部数据还是以二进制的形式存放和处理。二进制只使用了两个不同的数字符号,易于用物理器件来实现:在物理世界中具有两个稳定状态的物理器件很多,如晶体管的“截止”与“导通”、电容 的“充 电”与“放 电”、电 压 信 号 的“高”与“低”、脉 冲 的“有”与“无”,电磁单元的“正向磁化”与“反向磁化”等等,只要规定其中一种稳定状态表示“1”,另一种稳定状态表示“0”,就可以用来表示二进制数位了。其次,二进制的运算规则非常简单,易于用电子器件来实现。数据的类型多种多样,如文件、图、表、树、阵列、链表、栈、向量、串、实数、整数、布尔数、字符等。计算机里用到的数据类型主要可分为两类:表示数量的数值数据和非数值性的符号数据。所有的数据都是以二进制的形式在计算机里处理和存储。本节主要讲述数值数据在计算机里的表示方法。1数值数据表示方法数值数据表示方法 在计算机中表示数时,需要考虑以下几个因素:要表示的数的类型(小数、整数、实数和复数)、符号如何表示以及小数点的位置;可能遇到的数值范围;数值精确度;数据存储和处理所需要的硬件代价。计算机中表示数值符号的方法是占用一位二进制位,1表示负号、0表示正号。常用的数值数据表示格式有两种,根据小数点的位置是固定不变还是浮动变化的分为定点格式和浮点格式。一般来说,定点格式容许的数值范围有限,但要求的处理硬件比较简单。而浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。(1)(1)定点数的表示方法定点数的表示方法 所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“”来表示。原理上讲,小数点位置固定在哪一位都可以,但是通常将数据表示成纯小数或纯整数。例如用一个n1位字来表示一个定点数x,其中一位x0用来表示数的符号,其余位数代表它的量值。为了将整个n1位统一处理起见,符号位x0放在最左位置,并用数值 0和1分别代表正号和负号,这样,对于任意定点数x=x0 x1x2xn,在定点机中可表示为如下形式:x0 x1 x2 xn-1 xn符号 数量值 如果数x表示的是纯小数,那么小数点位于x0和x1之间。当x0 x1x2xn各位均为0时,数x的绝对值最小,当各位均为1时,x的绝对值最大,故数的表示范围为0 x12n 如果数x表示的是纯整数,那么小数点位于最低位xn的右边,此时数x的表示范围为 0 x2n1,目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。(2)浮点数的表示方法浮点数的表示方法 采用浮点表示法表示的数据叫做浮点数,采用浮点数进行运算的机器叫做“浮点机”。浮点数是指小数点位置可以改变的数,显然浮点数可用来表示带符号的实数。例如:表示8位字长的二进制浮点数可以写成 0.101101012111 尾 数 阶码 任意一个十进制数N可以写成 N=10ZX,同样,在计算机中一个任意进制数N可以写成 N=Bz X其中X称为浮点数的尾数,是一个纯小数。z是比例因子的指数,称为浮点的指数,是一个整数。比例因子的基数B是一个常数,一般规定只为2,8或16。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出指数,用整数形式表示,常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组成:3232位浮点数的标准格式为:Z0Z1Z2Zn-1ZnX0X1X2Xn-1Xn阶符阶码数符尾数31302322032位浮点数FZX64位浮点数的标准格式为:63625251064位浮点数FZX不论是32位浮点数还是64位浮点数,规定基数B2。由于基数2是固定常数,不必用显示方式来表示它。32位的浮点数中,F是浮点数的符号位,占1位,安排在最高位,F0表示正数,F1表示负数。X是尾数,放在低位部分,占用23位,用小数表示,小数点放在尾数域的最前面。Z是阶码,占用8位,阶符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数值z变成阶码Z时,应将指数z加上一个固定的偏移值127(01111111),即Zz127。一个规格化的32位浮点数X的值可表示为X(1)F(1X)2E127 其中尾数域所表示的值是1X。因为规格化的浮点数的尾数域最左位也即最高有效位总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数X的真值为X=(1)F(1X)2E1O23zE1023若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。例如05也可以表示成005101,50102等等。为了提高数据的表示精度,当尾数的值不为0时,其绝对值应05,即尾数域的最高有效位应为1,否则要以修改阶码同时左右移小数点的办法,使其变成这一要求的表示形式,这称为浮点数的规格化表示。当一个浮点数的尾数为0,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零。浮点数所表示的范围远比定点数大的多。假设(考虑符号位)机器中的数由8位二进制数表示时:在定点机中这8位全部用来表示有效数字(包括符号);在浮点机中若阶符阶码占3位,数符尾数占5位。在此情况下,若只考虑正数值,定点机小数表示的数的范围是00000000到01111111,相当于十进制数的0到127,而浮点机所能表示的数的范围是21100001到21101111,相当于十进制数的112875。显然,都用8位,浮点机能表示的数的范围比定点机大得多。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。【例21】若浮点数X0的二进制存储格式为(43240000)16,求其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 1X 2z(1010010)2710100100(187)10。【例22】将十进制数1659375转换成32位浮点数的二进制格式来存储。解:首先分别将整数和分数部分转换成二进制数:16593751000010011移动小数点,使其在第1位和第2位之间1000010011100001001124z4所以:F=0,E=4127=131,X=000010011则得到的32位浮点数的二进制存储格式为:01000001100001001100000000000000=(4184C000)16(3)定点数据的编码方法定点数据的编码方法真值与机器码机器码是数在计算机中的表示形式。对于数值数据而言,无论以定点形式表示或是以浮点形式表示,都需要通过某种编码方法,以计算机所能处理的0和1二进制位来表示其数值大小。通常一个数值数据的机内表示形式称为其机器码,而一个机器码所代表的数值称为该机器码的真值。计算机中只有机器码,不存在数的真值。假设机器码的宽度为n,最高位为符号位,下面分别介绍实际应用中常见的4种机器码编码方法:原码、反码、补码和移码。原码表示法定点整数原码表示法定点整数原码的定义如下所示:X原=X0X2n1X原=2n1X2n1X0由定义可以看出,正整数的原码就是其自身,负整数的原码只需把其绝对值的原码的符号位置为1即可。(用0表示正号,用1表示负号)。原码表示方法的定点整数的取值范围为(2n1)X2n11。注意在原码表示法中,零有正零和负零之分。000000,010000。定点小数的原码表示法定点小数原码的定义如下所示:X 原 X 0X1X 原1X 1X0正的纯小数的原码就是其自身,而负的纯小数的原码可以通过把其绝对值的原码的符号位置1来得到。其取值范围为(12(n1)X(12(n1)。综上可以看出一个数的原码是由符号位加上数值位绝对值组成,符号位为0代表正数,符号位为1代表负数。由于0有0和0两种表示方法,n位二进制数可以表示2n1个原码。用原码实现乘除运算规则较简单,但做加减运算不方便。原码表示法的一个主要优点在于其真值和机器码表示之间对应关系很直观,容易转换。补码表示法定点整数的补码表示定点整数补码的定义如下所示:X补X0X2n1X补2nX2n1X0 正整数的补码就是其自身,负整数的补码可以通过对其绝对值部分逐位求反,并在最低位加1求得。同样,在补码表示法中,符号位为0表示正号,为1表示负号。其表示的真值X的范围为2n1X2n11。在补码表示中,0的机器码是惟一的,没有0和0之分。定点小数的补码表示定点小数补码的定义如下所示:X补X0X1X补2X1X0定点小数的补码求解方法与定点整数的补码求解方法相类似。其表示的真值X的范围为1X12-(n-1)。当n8时,1的定点小数补码表示为:10000000,而用定点整数的补码表示1,则为11111111。在补码表示方法中,0的编码是惟一的,所以n位二进 制数可以表示2n个补码。反码表示法定点整数的反码表示定点整数反码的定义如下所示:X反X0X2n1X反(2n1)X2n1X0同样,正整数的反码就是其自身,而负整数的反码可以通过对其绝对值逐位求反来求得。在反码表示法中,符号位仍然用0表示正号,1表示负号。其表示的真值范围与原码相同:(2n11)X2n-11。数值0用反码表示亦有0和0之分。当n8时,0反00000000,0反11111111。定点小数的反码表示定点小数反码的定义如下所示:X反X0X1X反(22n1)X1X0定点小数的反码求解方法类似定点整数的反码求解方法。其表示的真值的取值范围为:(12(n1)X(12(n1)。反码表示法中,由于0占有了两个不同的编码,所以,n位二进制数可以表示2n1个反码。移码表示法定点整数的移码表示 X移2n1X2n-1X2n1定点小数的移码表示X移1X1X1移码的符号位与其他三种编码不同,用1表示正号而0表示负号。移码的求法其实也很简单,把其补码的符号位直接变反即可。所以在移码表示法中,0也有惟一的表示方法:10000000(n8)【例】设机器码长度为8,求X(6)10的原码、补码、反码和移码。解:解:X原码原码27(110)1000000011010000110 X补码补码28(110)1000000011011111010 X反反 码码(28 1)(110)11111111 11011111001 X移移码码27(110)1000000011001111010【例例】设设机机器器码码长长度度为为8,求求X(03125)10(00101)2的原码、补码、反码和移码。的原码、补码、反码和移码。解解:X原原 码码1X10(00101)1010110101000 X补补 码码2X100(00101)1101111011000 X反反码码(227)X(10000000001)(00101)11010111 X移移 码码1X10(00101)0101101011000 实际上求某个数的原码、补码、反码和移码时不仅可以利用其定义式采求解,也可以通过这4
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 办公文档 > 教学/培训


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号