第3章:数据的表示方法_第1页
第3章:数据的表示方法_第2页
第3章:数据的表示方法_第3页
第3章:数据的表示方法_第4页
第3章:数据的表示方法_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 我们在日常生活中经常使用的数据有09数字组成的数据 (称为数值型数据),还有英文字母、标点符号、汉字等数据 (称为字符型数据)。要想让计算机能处理这些数据,那么首 先就要解决这些数据在计算机中如何表示和存储的问题。 在这一章里,通过学习同学们需要了解如下内容: (1)常用进制之间的转换; (2)定点数的表示方法; (3)浮点数的表示方法; (4)编码及检验; 第3章:数据的表示方法 1 1 进制进制 一、进位计数数制 作为进位计数数制具有两个基本要素:基数和权 所谓基数:数制中所用到的代码的个数。 所谓权:不同数位的固定常数。如下图 二、计算机中使用二进制的原理 1、便于物理器件实现 在物理

2、中具有两个稳定状态的物理器件很多:晶体管的“截止” 和“导通”,电容的“充电”和“放电”,电压信号的“高”和 “低”,脉冲的“有”和“无”,电磁单元的“正向磁化”和 “反向磁化”等。 2、二进制运算规则简单 基数为J的进制,其求和、求积的公式各有J(J+1)/2种。 如:2进制:求和:0+0=0,0+1=1+0=1,1+1=10; 求积:0*0=0,1*0=0*1=0,1*1=1 十进制:基数位10 二进制:基数位2 在人类社会活动中都采用的是进位计数制。目前常用的进 位计数制有: (1)十进制 (2)60进制(分、秒) (3)12进制(年,时 钟) (4)八进制(星期) (5)二进制(鞋、袜

3、、筷子) 在计算机里,使用的进位制有四种进制: (1)十进制 D (2)二进制 B (3)八进制 Q (4)十六进制 H 2 2 常用进制转换常用进制转换 一、二进制数 十进制数 1、将十进制数转换成二进制数的方法 连续用不大于它的2n的值去减,直至余数为0,被减过的2n,表 明第n位为1,否则为0,最右边为第0位。 例1:(6894)D=(1101011101110)B 例2:把(0.6875)D变成二进制数:(0.6875)D=(0.1101)B 例3:(0.9)D转化成二进制 练习:把(100.375)D,(35.625)D转化成二进制数 2、二进制数转换成十进制数 将对应的二进制数字中

4、各位为1的位的值相加即可 例1:(11001)B=124+123+120=(25)D 例2:(110.101)2=122+121+12-1+12-3=(6.625)B 例3:将n位全是1的二进制数整数,其十进制数值为多少?(2n-1) 例4:计算1011.0123和1011.0123 将上述两题的运算结果同运算前的被乘数或被除数相比,我 们可以得出结论: 一个二进制数乘以或除以一个2n,相当于该二进制数的 小数点向左或向右移动n位,不够的位补0。 二、二进制数 十六进制数 在讲述它们之间的转换之前,我们先介绍一下十六进 制的表示符号,我们知道对于十进制数是用0、1、3、4、5、 6、7、8、9

5、十个数字表示,对于二进制数是0和1两个数字 表示,依次类推,十六进制数就应该用十六个符号表示, 对应的十六个符号为:0、1、2、3、4、5、6、7、8、9、A、 B、C、D、E、F 1、二进制数向十六进制数转换 方法:整数部分从右至左,小数部分从左至右,每四位分 成一组,然后每一组用一位十六进制数表示出来即可。 例1:(10011100)B转换十六进制数 (1001,1100)B=(9C)H 例2:(110011010.11011)B转换成16进制数。 2、十六进制向二进制转换 方法:将每一位十六进制数用四位二进制数表示出来即可 例1:(A6)H =(10100110)B 例2:(8D)H =

6、(10001100)B (3F8)H =(001111111000)B 三、二进制数 八进制数 八进制数就用八个符号表示,对应的八个符号为:0、1、 2、3、4、5、6、7 1、二进制数向八进制数转换 方法:整数部分从右至左,小数部分从左至右,每3位分成一 组,然后每一组用一位八进制数表示出来即可。 例:(1)1110111101.0101001B=( )Q (2)110011010.11011B=( )Q 2、八进制向二进制转换 方法:将每一位十六进制数用四位二进制数表示出来即可 例: (1)365.47Q=(011110101.100111)B (2)56.345Q=(101110.011

7、100101)B (3)765013Q=(111110101000001011)B 四、十进制数 八进制数、十六进制 1、八进制、十六进制向十进制转换有两种方法: 方法一:将八进制或十进制数先转换成对应二进制数,然后,将 所得二进制数展开相加。 例:56.345Q=101110.011100101D =125+123+122+121+12-2+12-3+12-4+12-7+12-9 =32+8+4+2+0.25+0.125+0.0625+0.0078125+0.001953125 =46.447265625 方法二:直接按数展开相加 例:56.345Q=581+680+38-1+48-2+58

8、-3 =58+61+30.125+40.015625+50.0009765625 =46.447265625 2、十进制向八进制或十六进制转换 方法一:先将十进制数转换对应二进制数,再将二进制数转 换成八进制或十六进制 例:将(34)D转换成八进制和十六进制 (34)D=(100010)B =(22)H=(42)Q 方法二:将十进制数直接除以8或16,除到余数小于8或16, 将余数用一位八进制符号或一位十六进制符号表示,并把它 写在商的后面即为转换的结果。 【数制转换中的小技巧】 (1)152.25D=(10011000.01)B=(230.2)Q=(98.4)H 152=128+16+8=2

9、7+24+23 0.25=2-2 (2)11111111B=( 255 )D 11111111+1-1=100000000-1=28-1=255 (3)7/16D=(0.0111)B 7/16=(22+2+1)/24=(2-2+2-3+2-4)=(0.0111)B 3 3 定点数的表示方法定点数的表示方法 在上一节进制转换的例子中,我们看到在现实生活中使用的 数值型数据完全可以转换成二进制数据来表示。如: 150D=10010110B,-150D=-10010110B 150.4D=10010110.0110011B,-150.4D=-10010110.0110011B 那么这些我们所看到的二

10、进制数就是计算机中能处理的二进 制数吗?肯定不是,因为还有几个问题没有解决: (1)数的符号数值化问题。0表示正,1表示负 (2)小数点的位置问题。约定:定点数和浮点数 (3)表示范围问题。受机器字长限制,超出此范围就称为溢出 一、几个基本概念 1、机器数:在计算机中表示出来的数。一般采用符号和数值 一起编码的方法来表示数据。 2、真值:一个机器数所代表的数值称为该机器数的真值。 3、定点数:小数点位置固定不变时所表示出来的数。从理论 上讲,小数点位置固定在哪一位都可以,但实际上通常将数 据表示成纯小数或纯整数。 4、浮点数:小数点位置不固定时所表示出来的数。这会带来 表示方法不唯一的问题。

11、【注意】一台计算机中数值究竟采用定点表示还是浮点表 示,要根据计算机的使用条件来确定。一般在高档微机以上 的计算机中是采用定点还是采用浮点表示,由用户进行选择。 而单片机采用定点表示。一般来说,定点表示的数值范围有 限,但要求处理的硬件比较简单;而浮点表示的数据范围很 大,但要求处理的硬件比较复杂。 二、定点表示法 所谓定点( fixed point)表示法:是指计算机中的小数点 位置是固定不变的。 根据小数点位置的固定方法不同,可分小数点固定在最低 位之后和小数点固定在数的最高位之前两种。 (1)设x的形式为x=x0.x1x2xn,(其中x0为符号位,x1 xn 是数值部分,也称为尾数,x1

12、为最高有效位),则在计算 机中的表示形式为: 这种小数点固定在数的最高位之前的表示法称为定点小数 表示法。它表示的数据范围为:-2-n 1-2-n 即(-0.0001+0.1111) X0X1 X2Xn 数值部分 小数点位置 符号位 x (2)设x的形式为x=x0 x1x2xn,(其中x0为符号位,x1 xn 是数值部分,也称为尾数,xn 为最低有效位),则在计算机中 的表示形式为: 这种小数点固定在数的最低位之后的表示法称为定点整数表 示法。它表示的数据范围为:1 x2-n -1 X0X1X2Xn 数值部分小数点位置 符号位 即(00011111) 当计算机采用定点整数表示时,它只能表示整数

13、。但在实际问题中,数不可 能总是整数,因此,对非整数进行必要的加工。加工的方法是选择适当的比 例因子,使全部参加运算的数都变为整数。 例如:二进制数+101.1和-10.11都是非整数,若将它们乘以比例因子22,则得 +101.122=+10110 10.1122=1011 当然,在输出结果时必须除以比例因子。 三、定点数的原码、反码和补码表示 原码:真值X的符号数值化后所表示出来的机器数。记为X原 反码:正数的反码与正数的原码相同,负数的反码的数值部分 是将该负数原码的数值部分各位取反。记为X反 补码:正数的补码与正数的原码相同,负数的补码的数值部分 是将该负数反码的数值部分加1。记为X补

14、总结:设计算机的字长为N位,X=Xn-2 Xn-3X0 其中,Xi=0 或1,则有: (1)真值X=+Xn-2Xn-3X0时 X原=X反=X补=0Xn-2Xn-3X0 即正数的原码,反码,补码完全相同。 (2)真值X= -Xn-2Xn-3X0时。 X原=1Xn-2Xn-3X0 X反=1Xn-2Xn-3X0 X补=1Xn-2Xn-3X0+1=X反+1 例1:已知计算机字号为8位,该机器采用定当整数(小数点在 最右边)表示数据,试写出二进制数x=+101010和y=-101010在 机器中表示的原码、反码和补码。 解: (1)X=+101010 因X为正,则X原=X反=X补=00101010 (2

15、)Y=-101010 因Y为负数,所以: Y原=10101010,Y反=11010101,Y补=11010110 例2 :已知X补=101101,求真值X 解:(1)由补码求反码:X反=X补 -1=101101-1=101100 (2)由反码求原码:X原=X反=110011 X补的符号位为1。显然X原对应的真值为负, 所以 X=-10011 注意:负数在机器中一般用补码表示注意:负数在机器中一般用补码表示。 例3:请求出+0和-0的原码、反码和补码 (1)小数: +0.0000000原=0.0000000;-0.0000000原=1.0000000 +0.0000000反=0.0000000;

16、-0.0000000反=1.1111111 +0.0000000补=0.0000000;-0.0000000补=0.0000000 (2)整数: +0000000原=0,0000000;-0000000原=1,0000000 +0000000反=0,0000000;-0000000反=1,1111111 +0000000补=0,0000000;-0000000补=0,0000000 【结论】“0”的原码表示:不唯一;“0”反码表示不唯一;0 补码表示唯一。 求下列各数的原、反、补码(设字长为5位) 由上例可以看出:数的原、反、补码的大小顺序与其真值大小 顺序不一致。这就带来一个问题,即数的大小

17、比较很麻烦。 四、移码表示 (1)定义: 定点小数:X移=1+X (-1=X1) 定点整数:X移=2n-1+X (-2n-1=X0,符号为1;X=0.5);而小数点后面的数必须为定点小数(即 =n+k+1 设n+k位为代码自左至右依次编为第1,2,3,n+k 位,而将k位检测位记作Ci(i=2j-1,j=1,k),分别安 插在n+k位代码编号的第1,2,4,8,2k-1位上。 , 海明码的组成需增添海明码的组成需增添 ?位检测位位检测位 检测位的位置检测位的位置 ? 检测位的取值检测位的取值 ? 2k n + k + 1 2i ( i = 0、1、2 、3 ) 检测位的取值与该位所在的检测检测

18、位的取值与该位所在的检测“小组小组” 中中 承担的奇偶校验任务有关承担的奇偶校验任务有关 组成海明码的三要素组成海明码的三要素 例例4.4 求求 0101 按按 “偶校验偶校验” 配置的海明码配置的海明码 解:解: n = 4 根据根据 2k n + k + 1 得得 k = 3 海明码排序如下海明码排序如下:c1=3+5+7 c2=3+6+7 c4=5+6+7 二进制序号二进制序号 名称名称 1 2 3 4 5 6 7 C1 C2 C4 0 0101 的海明码为的海明码为 0100101 01 0 1 10 按配偶原则配置按配偶原则配置 0011 的海明码的海明码 二进制序号二进制序号 名称名称 1 2 3 4 5 6 7 C1 C2 C4 1 0 0 00 1 1 解:解: n = 4 根据根据 2k n + k + 1 取取 k = 3 C1= 3 5 7 = 1 C2= 3 6 7 = 0 C4= 5 6 7 = 0 0011 的海明码为的海明码为 1000011 练习练习1 3. 海明码的纠错过程海明码的纠错过程 形成新的检测位形成新的检测位 P

温馨提示

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

评论

0/150

提交评论